(function webpackUniversalModuleDefinition(root, factory) {
	if(typeof exports === 'object' && typeof module === 'object')
		module.exports = factory();
	else if(typeof define === 'function' && define.amd)
		define([], factory);
	else if(typeof exports === 'object')
		exports["VueBaiduMap"] = factory();
	else
		root["VueBaiduMap"] = factory();
})(this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// identity function for calling harmony imports with the correct context
/******/ 	__webpack_require__.i = function(value) { return value; };
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, {
/******/ 				configurable: false,
/******/ 				enumerable: true,
/******/ 				get: getter
/******/ 			});
/******/ 		}
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 44);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {

module.exports = function normalizeComponent (
  rawScriptExports,
  compiledTemplate,
  scopeId,
  cssModules
) {
  var esModule
  var scriptExports = rawScriptExports = rawScriptExports || {}

  // ES6 modules interop
  var type = typeof rawScriptExports.default
  if (type === 'object' || type === 'function') {
    esModule = rawScriptExports
    scriptExports = rawScriptExports.default
  }

  // Vue.extend constructor export interop
  var options = typeof scriptExports === 'function'
    ? scriptExports.options
    : scriptExports

  // render functions
  if (compiledTemplate) {
    options.render = compiledTemplate.render
    options.staticRenderFns = compiledTemplate.staticRenderFns
  }

  // scopedId
  if (scopeId) {
    options._scopeId = scopeId
  }

  // inject cssModules
  if (cssModules) {
    var computed = options.computed || (options.computed = {})
    Object.keys(cssModules).forEach(function (key) {
      var module = cssModules[key]
      computed[key] = function () { return module }
    })
  }

  return {
    esModule: esModule,
    exports: scriptExports,
    options: options
  }
}


/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
const types = {
  control: {
    unload: 'removeControl'
  },
  layer: {
    unload: 'removeTileLayer'
  },
  overlay: {
    unload: 'removeOverlay'
  },
  contextMenu: {
    unload: 'removeContextMenu'
  }
};

const getParent = $component => $component.abstract || $component.$el === $component.$children[0].$el ? getParent($component.$parent) : $component;

function destroyInstance() {
  const { unload, renderByParent, $parent } = this;
  if (renderByParent) {
    $parent.reload();
  }
  unload();
}

class Mixin {
  constructor(prop) {
    this.methods = {
      ready() {
        const $parent = getParent(this.$parent);
        const BMap = this.BMap = $parent.BMap;
        const map = this.map = $parent.map;
        this.load();
        this.$emit('ready', {
          BMap,
          map
        });
      },
      transmitEvent(e) {
        this.$emit(e.type.replace(/^on/, ''), e);
      },
      reload() {
        this && this.BMap && this.$nextTick(() => {
          this.unload();
          this.$nextTick(this.load);
        });
      },
      unload() {
        const { map, originInstance } = this;
        try {
          switch (prop.type) {
            case 'search':
              return originInstance.clearResults();
            case 'autoComplete':
            case 'lushu':
              return originInstance.dispose();
            case 'markerClusterer':
              return originInstance.clearMarkers();
            default:
              map[types[prop.type].unload](originInstance);
          }
        } catch (e) {}
      }
    };
    this.computed = {
      renderByParent() {
        return this.$parent.preventChildrenRender;
      }
    };
    this.mounted = function () {
      const $parent = getParent(this.$parent);
      const map = $parent.map;
      const { ready } = this;
      map ? ready() : $parent.$on('ready', ready);
    };
    this.destroyed = destroyInstance;
    this.beforeDestroy = destroyInstance;
  }
}

/* harmony default export */ __webpack_exports__["a"] = (type => new Mixin({ type }));

/***/ }),
/* 2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (immutable) */ __webpack_exports__["a"] = createPoint;
/* unused harmony export createPixel */
/* harmony export (immutable) */ __webpack_exports__["d"] = createBounds;
/* harmony export (immutable) */ __webpack_exports__["c"] = createSize;
/* harmony export (immutable) */ __webpack_exports__["b"] = createIcon;
/* harmony export (immutable) */ __webpack_exports__["e"] = createLabel;
function createPoint(BMap, options = {}) {
  const { lng, lat } = options;
  return new BMap.Point(lng, lat);
}

function createPixel(BMap, options = {}) {
  const { x, y } = options;
  return new BMap.Pixel(x, y);
}

function createBounds(BMap, options = {}) {
  const { sw, ne } = options;
  return new BMap.Bounds(createPoint(BMap, sw), createPoint(BMap, ne));
}

function createSize(BMap, options = {}) {
  const { width, height } = options;
  return new BMap.Size(width, height);
}

function createIcon(BMap, options = {}) {
  const { url, size, opts = {} } = options;
  return new BMap.Icon(url, createSize(BMap, size), {
    anchor: opts.anchor && createSize(BMap, opts.anchor),
    imageSize: opts.imageSize && createSize(BMap, opts.imageSize),
    imageOffset: opts.imageOffset && createSize(BMap, opts.imageOffset),
    infoWindowAnchor: opts.infoWindowAnchor && createSize(BMap, opts.infoWindowAnchor),
    printImageUrl: opts.printImageUrl
  });
}

function createLabel(BMap, options = {}) {
  const { content, opts } = options;
  return new BMap.Label(content, {
    offset: opts.offset && createSize(BMap, opts.offset),
    position: opts.position && createPoint(BMap, opts.position),
    enableMassClear: opts.enableMassClear
  });
}

/***/ }),
/* 3 */
/***/ (function(module, exports) {

var g;

// This works in non-strict mode
g = (function() {
	return this;
})();

try {
	// This works if eval is allowed (see CSP)
	g = g || Function("return this")() || (1,eval)("this");
} catch(e) {
	// This works if the window reference is available
	if(typeof window === "object")
		g = window;
}

// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}

module.exports = g;


/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__events_js__ = __webpack_require__(41);


/* harmony default export */ __webpack_exports__["a"] = (function (instance, eventList) {
  const ev = eventList || __WEBPACK_IMPORTED_MODULE_0__events_js__["a" /* default */][this.$options.name];
  ev && ev.forEach(event => {
    const hasOn = event.slice(0, 2) === 'on';
    const eventName = hasOn ? event.slice(2) : event;
    const listener = this.$listeners[eventName];
    listener && instance.addEventListener(event, listener.fns);
  });
});

/***/ }),
/* 5 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__factory__ = __webpack_require__(2);


const isPoint = obj => obj.lng && obj.lat;
/* harmony export (immutable) */ __webpack_exports__["a"] = isPoint;

const checkType = val => Object.prototype.toString.call(val).slice(8, -1);
/* harmony export (immutable) */ __webpack_exports__["c"] = checkType;


const getPosition = (BMap, point) => isPoint(point) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__factory__["a" /* createPoint */])(BMap, point) : point;
/* harmony export (immutable) */ __webpack_exports__["b"] = getPosition;


/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(73),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(45),
  /* template */
  __webpack_require__(90),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(46),
  /* template */
  __webpack_require__(88),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(47),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(48),
  /* template */
  __webpack_require__(95),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(49),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(50),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(51),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(52),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(53),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(54),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(55),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(56),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(57),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(58),
  /* template */
  __webpack_require__(82),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(59),
  /* template */
  __webpack_require__(91),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 22 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(60),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(61),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 24 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(62),
  /* template */
  __webpack_require__(98),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(63),
  /* template */
  __webpack_require__(83),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 26 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(64),
  /* template */
  __webpack_require__(96),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(65),
  /* template */
  __webpack_require__(87),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 28 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(66),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 29 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(67),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 30 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(68),
  /* template */
  __webpack_require__(84),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 31 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(69),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 32 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(70),
  /* template */
  __webpack_require__(97),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 33 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(71),
  /* template */
  __webpack_require__(85),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 34 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(72),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 35 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(74),
  /* template */
  null,
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 36 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(75),
  /* template */
  __webpack_require__(92),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 37 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(76),
  /* template */
  __webpack_require__(86),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 38 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(77),
  /* template */
  __webpack_require__(94),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 39 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(78),
  /* template */
  __webpack_require__(93),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 40 */
/***/ (function(module, exports, __webpack_require__) {

var Component = __webpack_require__(0)(
  /* script */
  __webpack_require__(79),
  /* template */
  __webpack_require__(89),
  /* scopeId */
  null,
  /* cssModules */
  null
)

module.exports = Component.exports


/***/ }),
/* 41 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony default export */ __webpack_exports__["a"] = ({
  'bm-map': ['click', 'dblclick', 'rightclick', 'rightdblclick', 'maptypechange', 'mousemove', 'mouseover', 'mouseout', 'movestart', 'moving', 'moveend', 'zoomstart', 'zoomend', 'addoverlay', 'addcontrol', 'removecontrol', 'removeoverlay', 'clearoverlays', 'dragstart', 'dragging', 'dragend', 'addtilelayer', 'removetilelayer', 'load', 'resize', 'hotspotclick', 'hotspotover', 'hotspotout', 'tilesloaded', 'touchstart', 'touchmove', 'touchend', 'longpress'],
  'bm-geolocation': ['locationSuccess', 'locationError'],
  'bm-overview-map': ['viewchanged', 'viewchanging'],
  'bm-marker': ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseout', 'mouseover', 'remove', 'infowindowclose', 'infowindowopen', 'dragstart', 'dragging', 'dragend', 'rightclick'],
  'bm-polyline': ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseout', 'mouseover', 'remove', 'lineupdate'],
  'bm-polygon': ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseout', 'mouseover', 'remove', 'lineupdate'],
  'bm-circle': ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseout', 'mouseover', 'remove', 'lineupdate'],
  'bm-label': ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseout', 'mouseover', 'remove', 'rightclick'],
  'bm-info-window': ['close', 'open', 'maximize', 'restore', 'clickclose'],
  'bm-ground': ['click', 'dblclick'],
  'bm-autocomplete': ['onconfirm', 'onhighlight'],
  'bm-point-collection': ['click', 'mouseover', 'mouseout']
});

/***/ }),
/* 42 */
/***/ (function(module, exports, __webpack_require__) {

(function (root, factory) {
  if (true) {
    module.exports = factory();
  } else if (typeof define === 'function' && define.amd) {
    define(factory);
  } else {
    root.BMapLib = root.BMapLib || {};
    root.BMapLib.CurveLine = root.BMapLib.CurveLine || factory();
  }
})(this, function () {
  function CurveLine(points, opts) {
    try {
      BMap;
    } catch (e) {
      throw Error('Baidu Map JS API is not ready yet!');
    }
    var self = this;
    var curvePoints = getCurvePoints(points);
    var polyline = new BMap.Polyline(curvePoints, opts);

    polyline.addEventListener('lineupdate', function () {
      if (this.isEditing) {
        this.enableEditing();
      }
    });

    polyline.cornerPoints = points;
    polyline.editMarkers = []; //缂栬緫鍔熻兘鐨勯《鐐�

    /**
     * 閲嶅啓寮х嚎鐨勭紪杈戝姛鑳�
     */
    polyline.enableEditing = function () {
      var self = this;

      if (self.map) {
        self.disableEditing();
        for (var i = 0; i < self.cornerPoints.length; i++) {
          var marker = new BMap.Marker(self.cornerPoints[i], {
            icon: new BMap.Icon('http://api.map.baidu.com/library/CurveLine/1.5/src/circle.png', new BMap.Size(16, 16)),
            enableDragging: true,
            raiseOnDrag: true
          });
          marker.addEventListener('dragend', function () {
            self.cornerPoints.length = 0;
            for (var i = 0; i < self.editMarkers.length; i++) {
              self.cornerPoints.push(self.editMarkers[i].getPosition());
            }
            var curvePoints = getCurvePoints(self.cornerPoints);
            self.setPath(curvePoints);
          });
          marker.index = i;
          self.editMarkers.push(marker);
          self.map.addOverlay(marker);
        }
      }
      self.isEditing = true;
    };

    /**
     * 閲嶅啓寮х嚎鐨勭紪杈戝姛鑳�
     */
    polyline.disableEditing = function () {
      this.isEditing = false;
      //娓呯┖涔嬪墠鐨勭紪杈戠偣
      for (var i = 0; i < this.editMarkers.length; i++) {
        this.map.removeOverlay(this.editMarkers[i]);
        this.editMarkers[i] = null;
      }
      this.editMarkers.length = 0;
    };

    /**
     * 鑾峰彇寮х嚎鐨勫潗鏍囩偣
     */
    polyline.getPath = function () {
      return curvePoints;
    };

    // polyline.points = points; //寮х嚎鐨勫潗鏍囬《鐐�
    // polyline.enableEditing = enableEditing;
    // polyline.disableEditing = disableEditing;
    // polyline.getPath = getPath;
    return polyline;
  }

  function extend(child, parent) {
    for (var p in parent) {
      if (parent.hasOwnProperty(p)) {
        child[p] = parent[p];
      }
    }

    return child;
  };

  function getCurvePoints(points) {
    var curvePoints = [];
    for (var i = 0; i < points.length - 1; i++) {
      var p = getCurveByTwoPoints(points[i], points[i + 1]);
      if (p && p.length > 0) {
        curvePoints = curvePoints.concat(p);
      }
    }
    return curvePoints;
  }

  function getCurveByTwoPoints(obj1, obj2) {
    var curveCoordinates = [];
    if (!obj1 || !obj2 || !(obj1 instanceof BMap.Point) || !(obj2 instanceof BMap.Point)) {
      return null;
    }

    var B1 = function (x) {
      return 1 - 2 * x + x * x;
    };
    var B2 = function (x) {
      return 2 * x - 2 * x * x;
    };
    var B3 = function (x) {
      return x * x;
    };

    var count = 30; // 鏇茬嚎鏄敱涓€浜涘皬鐨勭嚎娈电粍鎴愮殑锛岃繖涓〃绀鸿繖涓洸绾挎墍鏈夊埌鐨勬姌绾跨殑涓暟
    var isFuture = false;
    var t, h, h2, lat3, lng3, j, t2;
    var LnArray = [];
    var i = 0;
    var inc = 0;

    if (typeof obj2 == "undefined") {
      if (typeof curveCoordinates != "undefined") {
        curveCoordinates = [];
      }
      return;
    }

    var lat1 = parseFloat(obj1.lat);
    var lat2 = parseFloat(obj2.lat);
    var lng1 = parseFloat(obj1.lng);
    var lng2 = parseFloat(obj2.lng);

    // 璁＄畻鏇茬嚎瑙掑害鐨勬柟娉�
    if (lng2 > lng1) {
      if (parseFloat(lng2 - lng1) > 180) {
        if (lng1 < 0) {
          lng1 = parseFloat(180 + 180 + lng1);
        }
      }
    }

    if (lng1 > lng2) {
      if (parseFloat(lng1 - lng2) > 180) {
        if (lng2 < 0) {
          lng2 = parseFloat(180 + 180 + lng2);
        }
      }
    }
    j = 0;
    t2 = 0;
    if (lat2 == lat1) {
      t = 0;
      h = lng1 - lng2;
    } else if (lng2 == lng1) {
      t = Math.PI / 2;
      h = lat1 - lat2;
    } else {
      t = Math.atan((lat2 - lat1) / (lng2 - lng1));
      h = (lat2 - lat1) / Math.sin(t);
    }
    if (t2 == 0) {
      t2 = t + Math.PI / 5;
    }
    h2 = h / 2;
    lng3 = h2 * Math.cos(t2) + lng1;
    lat3 = h2 * Math.sin(t2) + lat1;

    for (i = 0; i < count + 1; i++) {
      curveCoordinates.push(new BMap.Point(lng1 * B1(inc) + lng3 * B2(inc) + lng2 * B3(inc), lat1 * B1(inc) + lat3 * B2(inc) + lat2 * B3(inc)));
      inc = inc + 1 / count;
    }
    return curveCoordinates;
  }
  return CurveLine;
});

/***/ }),
/* 43 */
/***/ (function(module, exports, __webpack_require__) {

(function (root, factory) {
    if (true) {
        module.exports = factory();
    } else if (typeof define === 'function' && define.amd) {
        define(factory);
    } else {
        root.BMapLib = root.BMapLib || {};
        root.BMapLib.LuShu = root.BMapLib.Lushu || factory();
    }
})(this, function () {
    var baidu = {};
    baidu.dom = {};
    baidu.dom.g = function (id) {
        if ('string' == typeof id || id instanceof String) {
            return document.getElementById(id);
        } else if (id && id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) {
            return id;
        }
        return null;
    };
    baidu.g = baidu.G = baidu.dom.g;
    baidu.lang = baidu.lang || {};
    baidu.lang.isString = function (source) {
        return '[object String]' == Object.prototype.toString.call(source);
    };
    baidu.isString = baidu.lang.isString;
    baidu.dom._g = function (id) {
        if (baidu.lang.isString(id)) {
            return document.getElementById(id);
        }
        return id;
    };
    baidu._g = baidu.dom._g;
    baidu.dom.getDocument = function (element) {
        element = baidu.dom.g(element);
        return element.nodeType == 9 ? element : element.ownerDocument || element.document;
    };
    baidu.browser = baidu.browser || {};
    baidu.browser.ie = baidu.ie = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? document.documentMode || +RegExp['\x241'] : undefined;
    baidu.dom.getComputedStyle = function (element, key) {
        element = baidu.dom._g(element);
        var doc = baidu.dom.getDocument(element),
            styles;
        if (doc.defaultView && doc.defaultView.getComputedStyle) {
            styles = doc.defaultView.getComputedStyle(element, null);
            if (styles) {
                return styles[key] || styles.getPropertyValue(key);
            }
        }
        return '';
    };
    baidu.dom._styleFixer = baidu.dom._styleFixer || {};
    baidu.dom._styleFilter = baidu.dom._styleFilter || [];
    baidu.dom._styleFilter.filter = function (key, value, method) {
        for (var i = 0, filters = baidu.dom._styleFilter, filter; filter = filters[i]; i++) {
            if (filter = filter[method]) {
                value = filter(key, value);
            }
        }
        return value;
    };
    baidu.string = baidu.string || {};
    baidu.string.toCamelCase = function (source) {

        if (source.indexOf('-') < 0 && source.indexOf('_') < 0) {
            return source;
        }
        return source.replace(/[-_][^-_]/g, function (match) {
            return match.charAt(1).toUpperCase();
        });
    };
    baidu.dom.getStyle = function (element, key) {
        var dom = baidu.dom;
        element = dom.g(element);
        key = baidu.string.toCamelCase(key);

        var value = element.style[key] || (element.currentStyle ? element.currentStyle[key] : '') || dom.getComputedStyle(element, key);

        if (!value) {
            var fixer = dom._styleFixer[key];
            if (fixer) {
                value = fixer.get ? fixer.get(element) : baidu.dom.getStyle(element, fixer);
            }
        }

        if (fixer = dom._styleFilter) {
            value = fixer.filter(key, value, 'get');
        }
        return value;
    };
    baidu.getStyle = baidu.dom.getStyle;
    baidu.dom._NAME_ATTRS = function () {
        var result = {
            'cellpadding': 'cellPadding',
            'cellspacing': 'cellSpacing',
            'colspan': 'colSpan',
            'rowspan': 'rowSpan',
            'valign': 'vAlign',
            'usemap': 'useMap',
            'frameborder': 'frameBorder'
        };

        if (baidu.browser.ie < 8) {
            result['for'] = 'htmlFor';
            result['class'] = 'className';
        } else {
            result['htmlFor'] = 'for';
            result['className'] = 'class';
        }

        return result;
    }();
    baidu.dom.setAttr = function (element, key, value) {
        element = baidu.dom.g(element);
        if ('style' == key) {
            element.style.cssText = value;
        } else {
            key = baidu.dom._NAME_ATTRS[key] || key;
            element.setAttribute(key, value);
        }
        return element;
    };
    baidu.setAttr = baidu.dom.setAttr;
    baidu.dom.setAttrs = function (element, attributes) {
        element = baidu.dom.g(element);
        for (var key in attributes) {
            baidu.dom.setAttr(element, key, attributes[key]);
        }
        return element;
    };
    baidu.setAttrs = baidu.dom.setAttrs;
    baidu.dom.create = function (tagName, opt_attributes) {
        var el = document.createElement(tagName),
            attributes = opt_attributes || {};
        return baidu.dom.setAttrs(el, attributes);
    };
    baidu.object = baidu.object || {};
    baidu.extend = baidu.object.extend = function (target, source) {
        for (var p in source) {
            if (source.hasOwnProperty(p)) {
                target[p] = source[p];
            }
        }
        return target;
    };

    /**
     * @exports LuShu as BMapLib.LuShu
     */
    var LuShu = function (map, path, opts) {
        try {
            BMap;
        } catch (e) {
            throw Error('Baidu Map JS API is not ready yet!');
        }
        if (!path || path.length < 1) {
            return;
        }
        this._map = map;
        this._path = path;
        this.i = 0;
        this._setTimeoutQuene = [];
        this._projection = this._map.getMapType().getProjection();
        this._opts = {
            icon: null,
            speed: 4000,
            defaultContent: '',
            showInfoWindow: false,
            moveToIndex: -1
        };
        this._setOptions(opts);
        this._rotation = 0;

        if (!this._opts.icon instanceof BMap.Icon) {
            this._opts.icon = defaultIcon;
        }
    };
    LuShu.prototype._setOptions = function (opts) {
        if (!opts) {
            return;
        }
        for (var p in opts) {
            if (opts.hasOwnProperty(p)) {
                this._opts[p] = opts[p];
            }
        }
    };
    LuShu.prototype.start = function () {
        var me = this,
            len = me._path.length;
        this._opts.onstart && this._opts.onstart(me);
        if (me.i && me.i < len - 1) {
            if (!me._fromPause) {
                return;
            } else if (!me._fromStop) {
                me._moveNext(++me.i);
            }
        } else {
            !me._marker && me._addMarker();
            me._timeoutFlag = setTimeout(function () {
                !me._overlay && me._addInfoWin();
                me._moveNext(me.i);
            }, 400);
        }
        this._fromPause = false;
        this._fromStop = false;
    }, LuShu.prototype.stop = function () {
        this.i = 0;
        this._fromStop = true;
        clearInterval(this._intervalFlag);
        this._clearTimeout();
        for (var i = 0, t = this._opts.landmarkPois, len = t.length; i < len; i++) {
            t[i].bShow = false;
        }
        this._opts.onstop && this._opts.onstop(this);
    };
    LuShu.prototype.pause = function () {
        clearInterval(this._intervalFlag);
        this._fromPause = true;
        this._clearTimeout();
        this._opts.onpause && this._opts.onpause(this);
    };
    LuShu.prototype.hideInfoWindow = function () {
        this._opts.showInfoWindow = false;
        this._overlay && (this._overlay._div.style.visibility = 'hidden');
    };
    LuShu.prototype.showInfoWindow = function () {
        this._opts.showInfoWindow = true;
        this._overlay && (this._overlay._div.style.visibility = 'visible');
    };
    LuShu.prototype.dispose = function () {
        clearInterval(this._intervalFlag);
        this._setTimeoutQuene && this._clearTimeout();
        if (this._map) {
            this._map.removeOverlay(this._overlay);
            this._map.removeOverlay(this._marker);
        }
    };
    baidu.object.extend(LuShu.prototype, {
        _addMarker: function (callback) {
            if (this._marker) {
                this.stop();
                this._map.removeOverlay(this._marker);
                clearTimeout(this._timeoutFlag);
            }
            this._overlay && this._map.removeOverlay(this._overlay);
            var marker = new BMap.Marker(this._path[0]);
            this._opts.icon && marker.setIcon(this._opts.icon);
            this._map.addOverlay(marker);
            marker.setAnimation(BMAP_ANIMATION_DROP);
            this._marker = marker;
        },
        _addInfoWin: function () {
            var me = this;
            !CustomOverlay.prototype.initialize && initCustomOverlay();
            var overlay = new CustomOverlay(me._marker.getPosition(), me._opts.defaultContent);
            overlay.setRelatedClass(this);
            this._overlay = overlay;
            this._map.addOverlay(overlay);
            this._opts.showInfoWindow ? this.showInfoWindow() : this.hideInfoWindow();
        },
        _getMercator: function (poi) {
            return this._map.getMapType().getProjection().lngLatToPoint(poi);
        },
        _getDistance: function (pxA, pxB) {
            return Math.sqrt(Math.pow(pxA.x - pxB.x, 2) + Math.pow(pxA.y - pxB.y, 2));
        },
        _move: function (initPos, targetPos, effect) {
            var me = this,
                currentCount = 0,
                timer = 10,
                step = this._opts.speed / (1000 / timer),
                init_pos = this._projection.lngLatToPoint(initPos),
                target_pos = this._projection.lngLatToPoint(targetPos),
                count = Math.round(me._getDistance(init_pos, target_pos) / step);
            if (count < 1) {
                me._moveNext(++me.i);
                return;
            }
            me._intervalFlag = setInterval(function () {
                if (currentCount >= count) {
                    clearInterval(me._intervalFlag);
                    if (me.i > me._path.length) {
                        return;
                    }
                    me._moveNext(++me.i);
                } else {
                    currentCount++;
                    var x = effect(init_pos.x, target_pos.x, currentCount, count),
                        y = effect(init_pos.y, target_pos.y, currentCount, count),
                        pos = me._projection.pointToLngLat(new BMap.Pixel(x, y));
                    if (currentCount == 1) {
                        var proPos = null;
                        if (me.i - 1 >= 0) {
                            proPos = me._path[me.i - 1];
                        }
                        if (me._opts.enableRotation == true) {
                            me.setRotation(proPos, initPos, targetPos);
                        }
                        if (me._opts.autoView) {
                            if (!me._map.getBounds().containsPoint(pos)) {
                                me._map.setCenter(pos);
                            }
                        }
                    }
                    me._marker.setPosition(pos);
                    me._setInfoWin(pos);
                }
            }, timer);
        },
        setRotation: function (prePos, curPos, targetPos) {
            var me = this;
            var deg = 0;
            //start!
            curPos = me._map.pointToPixel(curPos);
            targetPos = me._map.pointToPixel(targetPos);

            if (targetPos.x != curPos.x) {
                var tan = (targetPos.y - curPos.y) / (targetPos.x - curPos.x),
                    atan = Math.atan(tan);
                deg = atan * 360 / (2 * Math.PI);
                //degree  correction;
                if (targetPos.x < curPos.x) {
                    deg = -deg + 90 + 90;
                } else {
                    deg = -deg;
                }

                me._marker.setRotation(-deg);
            } else {
                var disy = targetPos.y - curPos.y;
                var bias = 0;
                if (disy > 0) bias = -1;else bias = 1;
                me._marker.setRotation(-bias * 90);
            }
            return;
        },
        linePixellength: function (from, to) {
            return Math.sqrt(Math.abs(from.x - to.x) * Math.abs(from.x - to.x) + Math.abs(from.y - to.y) * Math.abs(from.y - to.y));
        },
        pointToPoint: function (from, to) {
            return Math.abs(from.x - to.x) * Math.abs(from.x - to.x) + Math.abs(from.y - to.y) * Math.abs(from.y - to.y);
        },
        _moveNext: function (index) {
            var me = this;

            if (this._opts.moveToIndex > 0) {
                // console.log('执行movetoindex', this._opts.moveToIndex)
                index = this._opts.moveToIndex;
                me.i = index;
                this._opts.moveToIndex = -1;
            }

            if (index < this._path.length - 1) {
                // console.log('执行的index', index)
                me._move(me._path[index], me._path[index + 1], me._tween.linear);
                this._opts.onmove({ me, index });
            } else {
                me.stop();
                this._opts.onfinish({ me, index });
            }
        },
        _setInfoWin: function (pos) {
            var me = this;
            me._overlay.setPosition(pos, me._marker.getIcon().size);
            var index = me._troughPointIndex(pos);
            if (index != -1) {
                clearInterval(me._intervalFlag);
                me._overlay.setHtml(me._opts.landmarkPois[index].html);
                me._overlay.setPosition(pos, me._marker.getIcon().size);
                me._pauseForView(index);
            } else {
                me._overlay.setHtml(me._opts.defaultContent);
            }
        },
        _pauseForView: function (index) {
            var me = this;
            var t = setTimeout(function () {
                me._moveNext(++me.i);
            }, me._opts.landmarkPois[index].pauseTime * 1000);
            me._setTimeoutQuene.push(t);
        },
        _clearTimeout: function () {
            for (var i in this._setTimeoutQuene) {
                clearTimeout(this._setTimeoutQuene[i]);
            }
            this._setTimeoutQuene.length = 0;
        },
        _tween: {
            linear: function (initPos, targetPos, currentCount, count) {
                var b = initPos,
                    c = targetPos - initPos,
                    t = currentCount,
                    d = count;
                return c * t / d + b;
            }
        },
        _troughPointIndex: function (markerPoi) {
            var t = this._opts.landmarkPois,
                distance;
            for (var i = 0, len = t.length; i < len; i++) {
                if (!t[i].bShow) {
                    distance = this._map.getDistance(new BMap.Point(t[i].lng, t[i].lat), markerPoi);
                    if (distance < 10) {
                        t[i].bShow = true;
                        return i;
                    }
                }
            }
            return -1;
        }
    });
    function CustomOverlay(point, html) {
        this._point = point;
        this._html = html;
    }

    function initCustomOverlay() {
        CustomOverlay.prototype = new BMap.Overlay();
        CustomOverlay.prototype.initialize = function (map) {
            var div = this._div = baidu.dom.create('div', { style: 'border:solid 1px #666;width:290px;min-width:50px;text-align:left;position:absolute;background:#fff;color:#000;font-size:12px;border-radius: 3px;padding:15px;white-space: nowrap;' });
            div.innerHTML = this._html;
            map.getPanes().floatPane.appendChild(div);
            this._map = map;
            return div;
        };
        CustomOverlay.prototype.draw = function () {
            this.setPosition(this.lushuMain._marker.getPosition(), this.lushuMain._marker.getIcon().size);
        };
        baidu.object.extend(CustomOverlay.prototype, {
            setPosition: function (poi, markerSize) {
                var px = this._map.pointToOverlayPixel(poi),
                    styleW = baidu.dom.getStyle(this._div, 'width'),
                    styleH = baidu.dom.getStyle(this._div, 'height'),
                    overlayW = parseInt(this._div.clientWidth || styleW, 10),
                    overlayH = parseInt(this._div.clientHeight || styleH, 10);
                this._div.style.left = px.x - overlayW / 2 + 'px';
                this._div.style.bottom = -(px.y - markerSize.height) + 'px';
            },
            setHtml: function (html) {
                this._div.innerHTML = html;
            },
            setRelatedClass: function (lushuMain) {
                this.lushuMain = lushuMain;
            }
        });
    }

    return LuShu;
});

/***/ }),
/* 44 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__map_Map_vue__ = __webpack_require__(24);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__map_Map_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__map_Map_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__map_MapView_vue__ = __webpack_require__(25);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__map_MapView_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__map_MapView_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__controls_Scale_vue__ = __webpack_require__(17);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__controls_Scale_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__controls_Scale_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__controls_Navigation_vue__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__controls_Navigation_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__controls_Navigation_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__controls_MapType_vue__ = __webpack_require__(13);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__controls_MapType_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__controls_MapType_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__controls_OverviewMap_vue__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__controls_OverviewMap_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__controls_OverviewMap_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__controls_Geolocation_vue__ = __webpack_require__(12);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__controls_Geolocation_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__controls_Geolocation_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__controls_Copyright_vue__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__controls_Copyright_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7__controls_Copyright_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__controls_CityList_vue__ = __webpack_require__(9);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__controls_CityList_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8__controls_CityList_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__controls_Panorama_vue__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__controls_Panorama_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__controls_Panorama_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__controls_Control_vue__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__controls_Control_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10__controls_Control_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__overlays_Marker_vue__ = __webpack_require__(32);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__overlays_Marker_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11__overlays_Marker_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__overlays_PointCollection_vue__ = __webpack_require__(34);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__overlays_PointCollection_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12__overlays_PointCollection_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__overlays_Polyline_vue__ = __webpack_require__(35);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__overlays_Polyline_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13__overlays_Polyline_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__overlays_Polygon_vue__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__overlays_Polygon_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14__overlays_Polygon_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__overlays_Circle_vue__ = __webpack_require__(28);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__overlays_Circle_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15__overlays_Circle_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__overlays_Ground_vue__ = __webpack_require__(29);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__overlays_Ground_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_16__overlays_Ground_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__overlays_Label_vue__ = __webpack_require__(31);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__overlays_Label_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_17__overlays_Label_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__overlays_InfoWindow_vue__ = __webpack_require__(30);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__overlays_InfoWindow_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_18__overlays_InfoWindow_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__overlays_Overlay_vue__ = __webpack_require__(33);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__overlays_Overlay_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_19__overlays_Overlay_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__context_menu_Menu_vue__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__context_menu_Menu_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_20__context_menu_Menu_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__context_menu_Item_vue__ = __webpack_require__(7);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__context_menu_Item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_21__context_menu_Item_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__search_LocalSearch_vue__ = __webpack_require__(38);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__search_LocalSearch_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_22__search_LocalSearch_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__search_Transit_vue__ = __webpack_require__(39);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__search_Transit_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_23__search_Transit_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__search_Walking_vue__ = __webpack_require__(40);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__search_Walking_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_24__search_Walking_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__search_Driving_vue__ = __webpack_require__(37);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__search_Driving_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_25__search_Driving_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__search_Bus_vue__ = __webpack_require__(36);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__search_Bus_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_26__search_Bus_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__layers_Tile_vue__ = __webpack_require__(22);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__layers_Tile_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_27__layers_Tile_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__layers_Traffic_vue__ = __webpack_require__(23);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__layers_Traffic_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_28__layers_Traffic_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__others_Boundary_vue__ = __webpack_require__(27);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_29__others_Boundary_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_29__others_Boundary_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__others_AutoComplete_vue__ = __webpack_require__(26);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_30__others_AutoComplete_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_30__others_AutoComplete_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__extra_MarkerClusterer_vue__ = __webpack_require__(21);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_31__extra_MarkerClusterer_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_31__extra_MarkerClusterer_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__extra_Lushu_vue__ = __webpack_require__(20);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_32__extra_Lushu_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_32__extra_Lushu_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__extra_Heatmap_vue__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_33__extra_Heatmap_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_33__extra_Heatmap_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__extra_CurveLine_vue__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_34__extra_CurveLine_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_34__extra_CurveLine_vue__);
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BaiduMap", function() { return __WEBPACK_IMPORTED_MODULE_0__map_Map_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmView", function() { return __WEBPACK_IMPORTED_MODULE_1__map_MapView_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmScale", function() { return __WEBPACK_IMPORTED_MODULE_2__controls_Scale_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmNavigation", function() { return __WEBPACK_IMPORTED_MODULE_3__controls_Navigation_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmMapType", function() { return __WEBPACK_IMPORTED_MODULE_4__controls_MapType_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmOverviewMap", function() { return __WEBPACK_IMPORTED_MODULE_5__controls_OverviewMap_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmGeolocation", function() { return __WEBPACK_IMPORTED_MODULE_6__controls_Geolocation_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmCopyright", function() { return __WEBPACK_IMPORTED_MODULE_7__controls_Copyright_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmCityList", function() { return __WEBPACK_IMPORTED_MODULE_8__controls_CityList_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmPanorama", function() { return __WEBPACK_IMPORTED_MODULE_9__controls_Panorama_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmControl", function() { return __WEBPACK_IMPORTED_MODULE_10__controls_Control_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmMarker", function() { return __WEBPACK_IMPORTED_MODULE_11__overlays_Marker_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmPointCollection", function() { return __WEBPACK_IMPORTED_MODULE_12__overlays_PointCollection_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmPolyline", function() { return __WEBPACK_IMPORTED_MODULE_13__overlays_Polyline_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmPolygon", function() { return __WEBPACK_IMPORTED_MODULE_14__overlays_Polygon_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmCircle", function() { return __WEBPACK_IMPORTED_MODULE_15__overlays_Circle_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmGround", function() { return __WEBPACK_IMPORTED_MODULE_16__overlays_Ground_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmLabel", function() { return __WEBPACK_IMPORTED_MODULE_17__overlays_Label_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmInfoWindow", function() { return __WEBPACK_IMPORTED_MODULE_18__overlays_InfoWindow_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmOverlay", function() { return __WEBPACK_IMPORTED_MODULE_19__overlays_Overlay_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmContextMenu", function() { return __WEBPACK_IMPORTED_MODULE_20__context_menu_Menu_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmContextMenuItem", function() { return __WEBPACK_IMPORTED_MODULE_21__context_menu_Item_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmLocalSearch", function() { return __WEBPACK_IMPORTED_MODULE_22__search_LocalSearch_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmTransit", function() { return __WEBPACK_IMPORTED_MODULE_23__search_Transit_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmWalking", function() { return __WEBPACK_IMPORTED_MODULE_24__search_Walking_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmDriving", function() { return __WEBPACK_IMPORTED_MODULE_25__search_Driving_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmBus", function() { return __WEBPACK_IMPORTED_MODULE_26__search_Bus_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmTile", function() { return __WEBPACK_IMPORTED_MODULE_27__layers_Tile_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmTraffic", function() { return __WEBPACK_IMPORTED_MODULE_28__layers_Traffic_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmBoundary", function() { return __WEBPACK_IMPORTED_MODULE_29__others_Boundary_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmAutoComplete", function() { return __WEBPACK_IMPORTED_MODULE_30__others_AutoComplete_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmlMarkerClusterer", function() { return __WEBPACK_IMPORTED_MODULE_31__extra_MarkerClusterer_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmlLushu", function() { return __WEBPACK_IMPORTED_MODULE_32__extra_Lushu_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmlHeatmap", function() { return __WEBPACK_IMPORTED_MODULE_33__extra_Heatmap_vue___default.a; });
/* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "BmlCurveLine", function() { return __WEBPACK_IMPORTED_MODULE_34__extra_CurveLine_vue___default.a; });





































/* harmony default export */ __webpack_exports__["default"] = ({
  install(Vue, options) {
    const { ak } = options;
    Vue.prototype._BMap = () => ({ ak });

    Vue.component('baidu-map', __WEBPACK_IMPORTED_MODULE_0__map_Map_vue___default.a);
    Vue.component('bm-view', __WEBPACK_IMPORTED_MODULE_1__map_MapView_vue___default.a);

    Vue.component('bm-scale', __WEBPACK_IMPORTED_MODULE_2__controls_Scale_vue___default.a);
    Vue.component('bm-navigation', __WEBPACK_IMPORTED_MODULE_3__controls_Navigation_vue___default.a);
    Vue.component('bm-map-type', __WEBPACK_IMPORTED_MODULE_4__controls_MapType_vue___default.a);
    Vue.component('bm-overview-map', __WEBPACK_IMPORTED_MODULE_5__controls_OverviewMap_vue___default.a);
    Vue.component('bm-geolocation', __WEBPACK_IMPORTED_MODULE_6__controls_Geolocation_vue___default.a);
    Vue.component('bm-copyright', __WEBPACK_IMPORTED_MODULE_7__controls_Copyright_vue___default.a);
    Vue.component('bm-city-list', __WEBPACK_IMPORTED_MODULE_8__controls_CityList_vue___default.a);
    Vue.component('bm-panorama', __WEBPACK_IMPORTED_MODULE_9__controls_Panorama_vue___default.a);
    Vue.component('bm-control', __WEBPACK_IMPORTED_MODULE_10__controls_Control_vue___default.a);

    Vue.component('bm-marker', __WEBPACK_IMPORTED_MODULE_11__overlays_Marker_vue___default.a);
    Vue.component('bm-point-collection', __WEBPACK_IMPORTED_MODULE_12__overlays_PointCollection_vue___default.a);
    Vue.component('bm-polyline', __WEBPACK_IMPORTED_MODULE_13__overlays_Polyline_vue___default.a);
    Vue.component('bm-polygon', __WEBPACK_IMPORTED_MODULE_14__overlays_Polygon_vue___default.a);
    Vue.component('bm-circle', __WEBPACK_IMPORTED_MODULE_15__overlays_Circle_vue___default.a);
    Vue.component('bm-ground', __WEBPACK_IMPORTED_MODULE_16__overlays_Ground_vue___default.a);
    Vue.component('bm-label', __WEBPACK_IMPORTED_MODULE_17__overlays_Label_vue___default.a);
    Vue.component('bm-info-window', __WEBPACK_IMPORTED_MODULE_18__overlays_InfoWindow_vue___default.a);
    Vue.component('bm-overlay', __WEBPACK_IMPORTED_MODULE_19__overlays_Overlay_vue___default.a);

    Vue.component('bm-context-menu', __WEBPACK_IMPORTED_MODULE_20__context_menu_Menu_vue___default.a);
    Vue.component('bm-context-menu-item', __WEBPACK_IMPORTED_MODULE_21__context_menu_Item_vue___default.a);

    Vue.component('bm-local-search', __WEBPACK_IMPORTED_MODULE_22__search_LocalSearch_vue___default.a);
    Vue.component('bm-transit', __WEBPACK_IMPORTED_MODULE_23__search_Transit_vue___default.a);
    Vue.component('bm-walking', __WEBPACK_IMPORTED_MODULE_24__search_Walking_vue___default.a);
    Vue.component('bm-driving', __WEBPACK_IMPORTED_MODULE_25__search_Driving_vue___default.a);
    Vue.component('bm-bus', __WEBPACK_IMPORTED_MODULE_26__search_Bus_vue___default.a);

    Vue.component('bm-tile', __WEBPACK_IMPORTED_MODULE_27__layers_Tile_vue___default.a);
    Vue.component('bm-traffic', __WEBPACK_IMPORTED_MODULE_28__layers_Traffic_vue___default.a);

    Vue.component('bm-auto-complete', __WEBPACK_IMPORTED_MODULE_30__others_AutoComplete_vue___default.a);
    Vue.component('bm-boundary', __WEBPACK_IMPORTED_MODULE_29__others_Boundary_vue___default.a);
  }
});





/***/ }),
/* 45 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
//
//
//
//
//

/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-context-menu-item',
  props: {
    callback: {
      type: Function,
      default: function () {}
    },
    text: {
      type: String
    },
    iconUrl: {
      type: String
    },
    id: {
      type: String
    },
    disabled: {
      type: Boolean
    },
    seperator: {
      type: Boolean
    }
  },
  methods: {
    reload() {
      this.$parent.map && this.$parent.load();
    }
  },
  watch: {
    text() {
      this.reload();
    },
    iconUrl() {
      this.reload();
    },
    id() {
      this.reload();
    },
    disabled() {
      this.reload();
    },
    iseperator() {
      this.reload();
    },
    callback() {
      this.reload();
    }
  },
  destroyed() {
    this.reload();
  },
  mounted() {
    this.reload();
  }
});

/***/ }),
/* 46 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-context-menu',
  props: {
    width: {
      type: Number
    }
  },
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('contextMenu')],
  methods: {
    load() {
      const { width, BMap, map, $parent } = this;
      const parent = this.parent = $parent.originInstance || map;
      if (this.originInstance) {
        parent.removeContextMenu(this.originInstance);
      }
      const menu = this.originInstance = new BMap.ContextMenu();
      for (const item of this.$children) {
        if (item.seperator) {
          menu.addSeparator();
          continue;
        }
        const menuItem = new BMap.MenuItem(item.text, function (point, pixel) {
          item.callback({
            point,
            pixel,
            BMap,
            map,
            target: parent
          });
        }, {
          width,
          id: item.id,
          iconUrl: item.iconUrl
        });
        item.disabled ? menuItem.disable() : menuItem.enable();
        item.originInstance = menuItem;
        menu.addItem(menuItem);
      }
      parent.addContextMenu(menu);
    }
  }
});

/***/ }),
/* 47 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-city-list',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  props: {
    anchor: {
      type: String
    },
    offset: {
      type: Object
    }
  },
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, anchor, offset } = this;
      const self = this;
      this.originInstance = new BMap.CityListControl({
        anchor: global[anchor],
        offset: offset && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, offset),
        onChangeBefore() {
          self.$emit('changeBefore');
        },
        onChangeAfter() {
          self.$emit('changeAfter');
        }
      });
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 48 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);
//
//
//
//
//
//




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-control',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  props: ['anchor', 'offset'],
  watch: {
    anchor(val) {
      this.originInstance.setAnchor(val);
    },
    offset(val) {
      this.originInstance.setOffset(val);
    }
  },
  methods: {
    load() {
      const { BMap, map, anchor, offset, $el } = this;
      const Control = function () {
        this.defaultAnchor = global[anchor || 'BMAP_ANCHOR_TOP_LEFT'];
        this.defaultOffset = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, offset);
      };
      Control.prototype = new BMap.Control();
      Control.prototype.initialize = map => map.getContainer().appendChild($el);
      this.originInstance = new Control(anchor, offset);
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 49 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-copyright',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  props: ['anchor', 'offset', 'copyright'],
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    },
    copyright() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, offset, anchor, updateCopyrightList } = this;
      this.originInstance = new BMap.CopyrightControl({
        anchor: global[anchor],
        offset: offset && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, offset)
      });
      updateCopyrightList();
      map.addControl(this.originInstance);
    },
    updateCopyrightList() {
      const { BMap, map } = this;
      const { removeCopyright, getCopyrightCollection } = this.originInstance;
      const copyrightList = getCopyrightCollection();
      copyrightList && copyrightList.forEach(item => {
        removeCopyright(item.id);
      });
      this.copyright && this.copyright.forEach(item => {
        const bounds = item.bounds ? new BMap.Bounds(new BMap.Point(item.bounds.sw.lng, item.bounds.sw.lat), new BMap.Point(item.bounds.ne.lng, item.bounds.ne.lat)) : map.getBounds();
        this.originInstance.addCopyright({
          id: item.id,
          content: item.content,
          bounds
        });
        this.originInstance.getCopyrightCollection();
      });
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 50 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-geolocation',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  props: {
    anchor: {
      type: String
    },
    offset: {
      type: Object
    },
    showAddressBar: {
      type: Boolean
    },
    autoLocation: {
      type: Boolean
    },
    locationIcon: {
      type: Object
    }
  },
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    },
    showAddressBar() {
      this.reload();
    },
    autoLocation() {
      this.reload();
    },
    locationIcon() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, anchor, showAddressBar, autoLocation, locationIcon, offset } = this;
      this.originInstance = new BMap.GeolocationControl({
        anchor: global[anchor],
        showAddressBar,
        enableAutoLocation: autoLocation,
        offset: offset && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["c" /* createSize */])(BMap, offset),
        locationIcon: locationIcon && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["b" /* createIcon */])(BMap, locationIcon)
      });
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, this.originInstance);
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 51 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-map-type',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  props: ['type', 'mapTypes', 'anchor', 'offset'],
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    },
    type() {
      this.reload();
    },
    mapTypes() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, anchor, offset, type } = this;
      const mapTypes = [];
      this.mapTypes && this.mapTypes.forEach(item => mapTypes.push(global[item]));
      this.originInstance = new BMap.MapTypeControl({
        anchor: global[anchor],
        offset: offset && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, offset),
        type: global[type],
        mapTypes
      });
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 52 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-navigation',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  props: {
    anchor: {
      type: String
    },
    offset: {
      type: Object
    },
    type: {
      type: String
    },
    showZoomInfo: {
      type: Boolean
    },
    enableGeolocation: {
      type: Boolean,
      default: false
    }
  },
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    },
    type() {
      this.reload();
    },
    showZoomInfo() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, anchor, offset, type, showZoomInfo, enableGeolocation } = this;
      this.originInstance = new BMap.NavigationControl({
        anchor: global[anchor],
        offset: offset && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, offset),
        type: global[type],
        showZoomInfo,
        enableGeolocation
      });
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 53 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_bindEvent_js__ = __webpack_require__(4);





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-overview-map',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_mixins_common_js__["a" /* default */])('control')],
  render() {},
  props: {
    anchor: {
      type: String
    },
    offset: {
      type: Object
    },
    size: {
      type: Object
    },
    isOpen: {
      type: Boolean
    }
  },
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    },
    size() {
      this.reload();
    },
    isOpen() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, isOpen, size, offset, anchor } = this;
      const mapTypes = [];
      this.mapTypes && this.mapTypes.forEach(item => {
        mapTypes.push(global[item]);
      });
      this.originInstance = new BMap.OverviewMapControl({
        anchor: global[anchor],
        offset: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["c" /* createSize */])(BMap, offset),
        size: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["c" /* createSize */])(BMap, size),
        isOpen
      });
      __WEBPACK_IMPORTED_MODULE_2__base_bindEvent_js__["a" /* default */].call(this, this.originInstance);
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 54 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-panorama',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  render() {},
  props: ['anchor', 'offset'],
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, anchor, offset } = this;
      this.originInstance = new BMap.PanoramaControl({
        anchor: global[anchor],
        offset: offset && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, offset)
      });
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 55 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-scale',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('control')],
  props: {
    anchor: {
      type: String
    },
    offset: {
      type: Object
    }
  },
  watch: {
    anchor() {
      this.reload();
    },
    offset() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, anchor, offset } = this;
      this.originInstance = new BMap.ScaleControl({
        anchor: global[anchor],
        offset: offset && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, offset)
      });
      map.addControl(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 56 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bmaplib_curveline__ = __webpack_require__(42);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__bmaplib_curveline___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__bmaplib_curveline__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__base_factory_js__ = __webpack_require__(2);






const eventList = ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseout', 'mouseover', 'remove', 'lineupdate'];

/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bml-curve-line',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    points: {
      type: Array,
      default: Array
    },
    strokeColor: {
      type: String
    },
    strokeWeight: {
      type: Number
    },
    strokeOpacity: {
      type: Number
    },
    strokeStyle: {
      type: String
    },
    massClear: {
      type: Boolean,
      default: true
    },
    clicking: {
      type: Boolean,
      default: true
    },
    editing: {
      type: Boolean,
      default: false
    }
  },
  watch: {
    points: {
      handler(val, oldVal) {
        this.originInstance.disableEditing();
        this.reload();
      },
      deep: true
    },
    strokeColor(val) {
      this.originInstance.setStrokeColor(val);
    },
    strokeOpacity(val) {
      this.originInstance.setStrokeOpacity(val);
    },
    strokeWeight(val) {
      this.originInstance.setStrokeWeight(val);
    },
    strokeStyle(val) {
      this.originInstance.setStrokeStyle(val);
    },
    editing(val) {
      val ? this.originInstance.enableEditing() : this.originInstance.disableEditing();
    },
    massClear(val) {
      val ? this.originInstance.enableMassClear() : this.originInstance.disableMassClear();
    },
    clicking(val) {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, points, strokeColor, strokeWeight, strokeOpacity, strokeStyle, editing, massClear, clicking } = this;
      const overlay = new __WEBPACK_IMPORTED_MODULE_0__bmaplib_curveline___default.a(points.map(item => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_3__base_factory_js__["a" /* createPoint */])(BMap, item)), {
        strokeColor,
        strokeWeight,
        strokeOpacity,
        strokeStyle,
        // enableEditing: editing,
        enableMassClear: massClear,
        enableClicking: clicking
      });
      editing ? overlay.enableEditing() : overlay.disableEditing();
      this.originInstance = overlay;
      map.addOverlay(overlay);
      __WEBPACK_IMPORTED_MODULE_2__base_bindEvent_js__["a" /* default */].call(this, overlay, eventList);
    }
  }
});

/***/ }),
/* 57 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_bmaplib_heatmap__ = __webpack_require__(80);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_bmaplib_heatmap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_bmaplib_heatmap__);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bml-heatmap',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    data: {
      type: Array,
      default: Array
    },
    max: {
      type: Number
    },
    radius: {
      type: Number
    },
    gradient: {
      type: Object
    },
    opacity: {
      type: Number
    }
  },
  watch: {
    data: {
      handler() {
        this.reload();
      },
      deep: true
    },
    max() {
      this.reload();
    },
    radius(val) {
      const { originInstance, opacity, gradient } = this;
      originInstance.setOptions({
        radius: val,
        opacity,
        gradient
      });
    },
    gradient: {
      handler(val) {
        const { originInstance, radius, opacity } = this;
        originInstance.setOptions({
          radius,
          opacity,
          gradient: val
        });
      },
      deep: true
    },
    opacity(val) {
      const { originInstance, radius, gradient } = this;
      originInstance.setOptions({
        radius,
        opacity: val,
        gradient
      });
    }
  },
  methods: {
    load() {
      const { map, data, max, radius, opacity, gradient } = this;
      const overlay = this.originInstance = new __WEBPACK_IMPORTED_MODULE_1_bmaplib_heatmap___default.a({
        radius,
        opacity,
        gradient
      });
      map.addOverlay(overlay);
      overlay.setDataSet({ data, max });
    }
  }
});

/***/ }),
/* 58 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__bmaplib_lushu__ = __webpack_require__(43);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__bmaplib_lushu___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__bmaplib_lushu__);
//
//
//
//
//
//

/*eslint-disable*/




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-lushu',
  render(h) {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('lushu')],
  props: {
    path: {
      type: Array,
      default: []
    },
    landmarkPois: {
      type: Array,
      default() {
        return [];
      }
    },
    icon: {
      type: Object
    },
    speed: {
      type: Number,
      default: 4000
    },
    content: {
      type: String,
      default: ''
    },
    autoView: {
      type: Boolean,
      default: false
    },
    rotation: {
      type: Boolean,
      default: false
    },
    infoWindow: {
      type: Boolean,
      default: true
    },
    play: {
      type: Boolean,
      default: true
    },
    moveToIndex: {
      type: Number,
      default: -1
    }
  },
  watch: {
    path: {
      handler(val) {
        this.reload();
      },
      deep: true
    },
    landmarkPois: {
      handler(val) {
        this.reload();
      },
      deep: true
    },
    icon: {
      handler(val) {
        const { originInstance, content } = this;
        const newMarker = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["b" /* createIcon */])(BMap, val);
        originInstance._opts.icon = newMarker;
        originInstance._marker = newMarker;
      },
      deep: true
    },
    speed(val) {
      const { originInstance, content } = this;
      originInstance._opts.speed = val;
    },
    moveToIndex(val) {
      // console.log('检测到拖动变化了', this)
      const { originInstance, content } = this;
      if (originInstance && originInstance._opts) originInstance._opts.moveToIndex = val;
    },
    content(val) {
      // console.log('infowindow====>', val, this)
      const { originInstance, infoWindow } = this;
      val && infoWindow ? originInstance.showInfoWindow() : originInstance.hideInfoWindow();
      originInstance._opts.defaultContent = val;
      originInstance._overlay && originInstance._overlay.setHtml(val);
    },
    autoView(val) {
      const { originInstance, content } = this;
      originInstance._opts.autoView = val;
    },
    rotation(val) {
      const { originInstance, content } = this;
      originInstance._opts.enableRotation = val;
    },
    infoWindow(val) {
      const { originInstance, content } = this;
      originInstance && val && content ? originInstance.showInfoWindow() : originInstance.hideInfoWindow();
    },
    play(val) {
      const { originInstance } = this;
      val && originInstance ? originInstance.start() : !this._isEnd && originInstance.pause();
    }
  },
  methods: {
    load() {
      const { BMap, map, path, landmarkPois, icon, speed, content, autoView, rotation, infoWindow, play } = this;
      const lushu = this.originInstance = new __WEBPACK_IMPORTED_MODULE_2__bmaplib_lushu___default.a(map, path, {
        enableRotation: rotation,
        landmarkPois,
        showInfoWindow: infoWindow,
        defaultContent: content,
        icon: icon && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["b" /* createIcon */])(BMap, icon),
        speed,
        autoView,
        onstart: e => {
          this._isEnd = false;
          this.$emit('start');
        },
        onstop: e => {
          this._isEnd = true;
          this.$emit('stop', e);
        },
        onpause: e => this.$emit('pause'),
        onmove: e => {
          this.$emit('move', e);
        },
        onfinish: e => this.$emit('finish', e)
      });
      play && path.length && lushu.start(this);
      path.length && (content && infoWindow ? lushu.showInfoWindow() : lushu.hideInfoWindow());
    }
  }
});

/***/ }),
/* 59 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_bmaplib_markerclusterer__ = __webpack_require__(81);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_bmaplib_markerclusterer___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_bmaplib_markerclusterer__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bml-marker-clusterer',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__["a" /* default */])('markerClusterer')],
  props: {
    gridSize: {
      type: Object
    },
    maxZoom: {
      type: Number
    },
    minClusterSize: {
      type: Number
    },
    styles: {
      type: Array,
      default() {
        return [];
      }
    },
    averageCenter: {
      type: Boolean,
      default: false
    }
  },
  watch: {
    gridSize: {
      handler(val) {
        const { BMap, originInstance } = this;
        originInstance.setGridSize(BMap, val.map);
      },
      deep: true
    },
    maxZoom(val) {
      const { originInstance } = this;
      originInstance.setMaxZoom(val);
    },
    minClusterSize: {
      handler(val) {
        const { BMap, originInstance } = this;
        originInstance.setMinClusterSize(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, val));
      },
      deep: true
    },
    styles: {
      handler(val) {
        const { BMap, originInstance } = this;
        const obj = JSON.parse(JSON.stringify(val)).map(item => {
          item.size = item.size && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, item.size);
          return item;
        });
        originInstance.setStyles(obj);
      },
      deep: true
    },
    averageCenter(val) {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, gridSize, minClusterSize, maxZoom, styles, averageCenter } = this;
      this.originInstance = new __WEBPACK_IMPORTED_MODULE_0_bmaplib_markerclusterer___default.a(map, {
        gridSize: gridSize && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, gridSize),
        maxZoom,
        minClusterSize: minClusterSize && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, minClusterSize),
        styles: styles.map(item => {
          item.size = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["c" /* createSize */])(BMap, item.size);
          return item;
        }),
        isAverageCenter: averageCenter
      });
      this.$nextTick(() => {
        const markers = this.$children.map(inst => inst.originInstance).filter(marker => marker instanceof BMap.Marker);
        this.originInstance.addMarkers(markers);
      });
    }
  },
  beforeCreate() {
    this.preventChildrenRender = true;
  }
});

/***/ }),
/* 60 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_factory_js__ = __webpack_require__(2);




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-tile',
  render(h) {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('layer')],
  props: {
    transparentPng: {
      type: Boolean
    },
    tileUrlTemplate: {
      type: String
    },
    copyright: {},
    zIndex: {
      type: Number
    }
  },
  watch: {
    transparentPng() {
      this.reload();
    },
    tileUrlTemplate() {
      this.reload();
    },
    copyright() {
      this.reload();
    },
    zIndex() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, transparentPng, tileUrlTemplate, copyright, zIndex } = this;
      this.originInstance = new BMap.TileLayer({
        transparentPng,
        tileUrlTemplate,
        copyright: copyright && {
          id: copyright.id,
          content: copyright.content,
          bounds: copyright.bounds && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_factory_js__["d" /* createBounds */])(copyright.bounds)
        },
        zIndex
      });
      map.addTileLayer(this.originInstance);
    }
  }
});

/***/ }),
/* 61 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);



/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-triffic',
  render(h) {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('layer')],
  props: {
    predictDate: {
      type: Object
    }
  },
  watch: {
    'pridictDate.weekday'() {
      this.reload();
    },
    'pridictDate.hour'() {
      this.reload();
    },
    pridictDate() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { pridictDate, BMap, map } = this;
      this.originInstance = new BMap.TrafficLayer({
        pridictDate
      });
      map.addTileLayer(this.originInstance);
    }
  }
});

/***/ }),
/* 62 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_util_js__ = __webpack_require__(5);
//
//
//
//
//
//
//
//




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-map',
  props: {
    ak: {
      type: String
    },
    center: {
      type: [Object, String]
    },
    zoom: {
      type: Number
    },
    minZoom: {
      type: Number
    },
    maxZoom: {
      type: Number
    },
    highResolution: {
      type: Boolean,
      default: true
    },
    mapClick: {
      type: Boolean,
      default: true
    },
    mapType: {
      type: String
    },
    dragging: {
      type: Boolean,
      default: true
    },
    scrollWheelZoom: {
      type: Boolean,
      default: false
    },
    doubleClickZoom: {
      type: Boolean,
      default: true
    },
    keyboard: {
      type: Boolean,
      default: true
    },
    inertialDragging: {
      type: Boolean,
      default: true
    },
    continuousZoom: {
      type: Boolean,
      default: true
    },
    pinchToZoom: {
      type: Boolean,
      default: true
    },
    autoResize: {
      type: Boolean,
      default: true
    },
    theme: {
      type: Array
    },
    mapStyle: {
      type: Object
    }
  },
  watch: {
    center(val, oldVal) {
      const { map, zoom } = this;
      if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["c" /* checkType */])(val) === 'String' && val !== oldVal) {
        map.centerAndZoom(val, zoom);
      }
    },
    'center.lng'(val, oldVal) {
      const { BMap, map, zoom, center } = this;
      if (val !== oldVal && val >= -180 && val <= 180) {
        map.centerAndZoom(new BMap.Point(val, center.lat), zoom);
      }
    },
    'center.lat'(val, oldVal) {
      const { BMap, map, zoom, center } = this;
      if (val !== oldVal && val >= -74 && val <= 74) {
        map.centerAndZoom(new BMap.Point(center.lng, val), zoom);
      }
    },
    zoom(val, oldVal) {
      const { map } = this;
      if (val !== oldVal && val >= 3 && val <= 19) {
        map.setZoom(val);
      }
    },
    minZoom(val) {
      const { map } = this;
      map.setMinZoom(val);
    },
    maxZoom(val) {
      const { map } = this;
      map.setMaxZoom(val);
    },
    highResolution() {
      this.reset();
    },
    mapClick() {
      this.reset();
    },
    mapType(val) {
      const { map } = this;
      map.setMapType(global[val]);
    },
    dragging(val) {
      const { map } = this;
      val ? map.enableDragging() : map.disableDragging();
    },
    scrollWheelZoom(val) {
      const { map } = this;
      val ? map.enableScrollWheelZoom() : map.disableScrollWheelZoom();
    },
    doubleClickZoom(val) {
      const { map } = this;
      val ? map.enableDoubleClickZoom() : map.disableDoubleClickZoom();
    },
    keyboard(val) {
      const { map } = this;
      val ? map.enableKeyboard() : map.disableKeyboard();
    },
    inertialDragging(val) {
      const { map } = this;
      val ? map.enableInertialDragging() : map.disableInertialDragging();
    },
    continuousZoom(val) {
      const { map } = this;
      val ? map.enableContinuousZoom() : map.disableContinuousZoom();
    },
    pinchToZoom(val) {
      const { map } = this;
      val ? map.enablePinchToZoom() : map.disablePinchToZoom();
    },
    autoResize(val) {
      const { map } = this;
      val ? map.enableAutoResize() : map.disableAutoResize();
    },
    theme(val) {
      const { map } = this;
      map.setMapStyle({ styleJson: val });
    },
    'mapStyle.features': {
      handler(val, oldVal) {
        const { map, mapStyle } = this;
        const { style, styleJson } = mapStyle;
        map.setMapStyle({
          styleJson,
          features: val,
          style
        });
      },
      deep: true
    },
    'mapStyle.style'(val, oldVal) {
      const { map, mapStyle } = this;
      const { features, styleJson } = mapStyle;
      map.setMapStyle({
        styleJson,
        features,
        style: val
      });
    },
    'mapStyle.styleJson': {
      handler(val, oldVal) {
        const { map, mapStyle } = this;
        const { features, style } = mapStyle;
        map.setMapStyle({
          styleJson: val,
          features,
          style
        });
      },
      deep: true
    },
    mapStyle(val) {
      const { map, theme } = this;
      !theme && map.setMapStyle(val);
    }
  },
  methods: {
    setMapOptions() {
      const { map, minZoom, maxZoom, mapType, dragging, scrollWheelZoom, doubleClickZoom, keyboard, inertialDragging, continuousZoom, pinchToZoom, autoResize } = this;
      minZoom && map.setMinZoom(minZoom);
      maxZoom && map.setMaxZoom(maxZoom);
      mapType && map.setMapType(global[mapType]);
      dragging ? map.enableDragging() : map.disableDragging();
      scrollWheelZoom ? map.enableScrollWheelZoom() : map.disableScrollWheelZoom();
      doubleClickZoom ? map.enableDoubleClickZoom() : map.disableDoubleClickZoom();
      keyboard ? map.enableKeyboard() : map.disableKeyboard();
      inertialDragging ? map.enableInertialDragging() : map.disableInertialDragging();
      continuousZoom ? map.enableContinuousZoom() : map.disableContinuousZoom();
      pinchToZoom ? map.enablePinchToZoom() : map.disablePinchToZoom();
      autoResize ? map.enableAutoResize() : map.disableAutoResize();
    },
    init(BMap) {
      if (this.map) {
        return;
      }
      let $el = this.$refs.view;
      for (let $node of this.$slots.default || []) {
        if ($node.componentOptions && $node.componentOptions.tag === 'bm-view') {
          this.hasBmView = true;
          $el = $node.elm;
        }
      }
      const map = new BMap.Map($el, { enableHighResolution: this.highResolution, enableMapClick: this.mapClick });
      this.map = map;
      const { setMapOptions, zoom, getCenterPoint, theme, mapStyle } = this;
      theme ? map.setMapStyle({ styleJson: theme }) : map.setMapStyle(mapStyle);
      setMapOptions();
      __WEBPACK_IMPORTED_MODULE_0__base_bindEvent_js__["a" /* default */].call(this, map);
      // 此处强行初始化一次地图 回避一个由于错误的 center 字符串导致初始化失败抛出的错误
      map.reset();
      map.centerAndZoom(getCenterPoint(), zoom);
      this.$emit('ready', { BMap, map });
      // Debug
      // global.map = map
      // global.mapComponent = this
    },
    getCenterPoint() {
      const { center, BMap } = this;
      switch (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["c" /* checkType */])(center)) {
        case 'String':
          return center;
        case 'Object':
          return new BMap.Point(center.lng, center.lat);
        default:
          return new BMap.Point();
      }
    },
    initMap(BMap) {
      this.BMap = BMap;
      this.init(BMap);
    },
    getMapScript() {
      if (!global.BMap) {
        const ak = this.ak || this._BMap().ak;
        global.BMap = {};
        global.BMap._preloader = new Promise((resolve, reject) => {
          global._initBaiduMap = function () {
            resolve(global.BMap);
            global.document.body.removeChild($script);
            global.BMap._preloader = null;
            global._initBaiduMap = null;
          };
          const $script = document.createElement('script');
          global.document.body.appendChild($script);
          $script.src = `https://api.map.baidu.com/api?v=2.0&ak=${ak}&callback=_initBaiduMap`;
        });
        return global.BMap._preloader;
      } else if (!global.BMap._preloader) {
        return Promise.resolve(global.BMap);
      } else {
        return global.BMap._preloader;
      }
    },
    reset() {
      const { getMapScript, initMap } = this;
      getMapScript().then(initMap);
    }
  },
  mounted() {
    this.reset();
  },
  data() {
    return {
      hasBmView: false
    };
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 63 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
//
//
//
//

/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-view'
});

/***/ }),
/* 64 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
//
//
//
//
//
//
//
//




/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-autocomplete',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])()],
  props: {
    types: {
      type: String
    },
    location: {
      type: String
    },
    sugStyle: {
      type: Object,
      default() {
        return {};
      }
    }
  },
  watch: {
    types() {
      this.reload();
    },
    location() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, $el, types, location, sugStyle } = this;
      const input = $el.querySelector('input');
      if (!input) {
        return;
      }
      this.originInstance = new BMap.Autocomplete({
        input,
        types,
        location: location || map,
        onSearchComplete: e => {
          const $sugs = document.querySelectorAll('.tangram-suggestion-main');
          for (const $sug of $sugs) {
            for (const name in sugStyle) {
              $sug.style[name] = sugStyle[name].toString();
            }
          }
          this.$emit('searchcomplete', e);
        }
      });

      // Support v-model
      this.originInstance.addEventListener('onconfirm', e => {
        const val = e.item.value;
        this.$emit('input', val.province + val.city + val.district + val.street + val.business);
      });

      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, this.originInstance);
    }
  }
});

/***/ }),
/* 65 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__overlays_Polygon_vue__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__overlays_Polygon_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__overlays_Polygon_vue__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//



// import abstractMixin from '../base/mixins/abstract.js'

/* harmony default export */ __webpack_exports__["default"] = ({
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_mixins_common_js__["a" /* default */])('abstract')],
  props: ['name', 'strokeColor', 'strokeWeight', 'strokeOpacity', 'strokeStyle', 'fillColor', 'fillOpacity', 'massClear', 'clicking'],
  data() {
    return {
      paths: []
    };
  },
  components: {
    BmPolygon: __WEBPACK_IMPORTED_MODULE_0__overlays_Polygon_vue___default.a
  },
  watch: {
    name() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, name } = this;
      const bd = new BMap.Boundary();
      bd.get(name, data => {
        this.paths = data.boundaries.map(boundary => (boundary || []).split(';').map(point => (([lng, lat]) => ({ lng, lat }))(point.split(',').map(p => +p))));
      });
    }
  }
});

/***/ }),
/* 66 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-circle',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    center: {},
    radius: {},
    strokeColor: {
      type: String
    },
    strokeWeight: {
      type: Number
    },
    strokeOpacity: {
      type: Number
    },
    strokeStyle: {
      type: String
    },
    fillColor: {
      type: String
    },
    fillOpacity: {
      type: Number
    },
    massClear: {
      type: Boolean,
      default: true
    },
    clicking: {
      type: Boolean,
      default: true
    },
    editing: {
      type: Boolean,
      default: false
    }
  },
  watch: {
    'center.lng'(val, oldVal) {
      const { BMap, originInstance, isEditing, disableEditing, enableEditing, center, editing } = this;
      if (!isEditing) {
        disableEditing();
        const lng = val;
        if (val.toString() !== oldVal.toString() && lng >= -180 && lng <= 180) {
          originInstance.setCenter(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng, lat: center.lat }));
        }
        editing && enableEditing();
      }
    },
    'center.lat'(val, oldVal) {
      const { BMap, originInstance, isEditing, disableEditing, enableEditing, center, editing } = this;
      if (!isEditing) {
        disableEditing();
        const lat = val;
        if (val.toString() !== oldVal.toString() && lat >= -74 && lat <= 74) {
          originInstance.setCenter(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng: center.lng, lat }));
        }
        editing && enableEditing();
      }
    },
    radius(val, oldVal) {
      const { originInstance, isEditing, disableEditing, enableEditing, editing } = this;
      if (!isEditing) {
        disableEditing();
        originInstance.setRadius(val);
        editing && enableEditing();
      }
    },
    strokeColor(val) {
      this.originInstance.setStrokeColor(val);
    },
    strokeOpacity(val) {
      this.originInstance.setStrokeOpacity(val);
    },
    strokeWeight(val) {
      this.originInstance.setStrokeWeight(val);
    },
    strokeStyle(val) {
      this.originInstance.setStrokeStyle(val);
    },
    fillColor(val) {
      this.originInstance.setFillColor(val);
    },
    fillOpacity(val) {
      this.originInstance.setFillOpacity(val);
    },
    editing(val) {
      val ? this.enableEditing() : this.disableEditing();
    },
    massClear(val) {
      val ? this.originInstance.enableMassClear() : this.originInstance.disableMassClear();
    },
    clicking(val) {
      this.reload();
    }
  },
  methods: {
    dragStartHandler() {
      this.isEditing = true;
    },
    dragEndHandler() {
      this.isEditing = false;
      this.bindEditingNodeEvents();
    },
    bindEditingNodeEvents() {
      const { originInstance, editingKey, dragStartHandler, dragEndHandler } = this;
      originInstance[editingKey].forEach($node => {
        $node.addEventListener('dragstart', dragStartHandler);
        $node.addEventListener('dragend', dragEndHandler);
      });
    },
    enableEditing() {
      const { originInstance, bindEditingNodeEvents } = this;
      originInstance.enableEditing();
      bindEditingNodeEvents();
    },
    disableEditing() {
      const { originInstance } = this;
      originInstance.disableEditing();
    },
    getEditingKey(overlay) {
      const stack = [];
      overlay.enableEditing();
      setTimeout(() => {
        for (const key in overlay) {
          if (overlay[key] && overlay[key].length === 2) {
            stack.push(key);
          }
        }
        overlay.disableEditing();
        for (const key in overlay) {
          if (overlay[key] && overlay[key].length === 0 && ~stack.indexOf(key)) {
            this.editingKey = key;
          }
        }
      }, 0);
    },
    load() {
      const { BMap, map, center, radius, strokeColor, strokeWeight, strokeOpacity, strokeStyle, fillColor, fillOpacity, editing, massClear, clicking, enableEditing, disableEditing, getEditingKey, editingKey } = this;
      const overlay = new BMap.Circle(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng: center.lng, lat: center.lat }), radius, {
        strokeColor,
        strokeWeight,
        strokeOpacity,
        strokeStyle,
        fillColor,
        fillOpacity,
        // enableEditing: editing,
        enableMassClear: massClear,
        enableClicking: clicking
      });
      this.originInstance = overlay;
      map.addOverlay(overlay);
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
      // 解决圆形组件无法双向绑定的问题
      !editingKey && getEditingKey(overlay);
      setTimeout(() => {
        editing ? enableEditing() : disableEditing();
      }, 0);
    }
  }
});

/***/ }),
/* 67 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-ground',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    bounds: {
      type: Object
    },
    opacity: {
      type: Number
    },
    imageURL: {
      type: String
    },
    displayOnMinLevel: {
      type: Number
    },
    displayOnMaxLevel: {
      type: Number
    }
  },
  watch: {
    bounds: {
      handler(val) {
        const { BMap } = this;
        this.originInstance.setBounds(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["d" /* createBounds */])(BMap, val));
      },
      deep: true
    },
    opacity(val) {
      this.originInstance.setOpacity(val);
    },
    imageURL(val) {
      this.originInstance.setImageURL(val);
    },
    displayOnMinLevel(val) {
      this.originInstance.setDisplayOnMinLevel(val);
    },
    displayOnMaxLevel(val) {
      this.originInstance.setDisplayOnMaxLevel(val);
    }
  },
  methods: {
    load() {
      const { BMap, map, bounds, opacity, imageURL, displayOnMinLevel, displayOnMaxLevel } = this;
      const overlay = new BMap.GroundOverlay(bounds && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["d" /* createBounds */])(BMap, bounds), {
        opacity,
        imageURL,
        displayOnMaxLevel,
        displayOnMinLevel
      });
      // option 中配置 https 协议地址无法加载
      overlay.setImageURL(imageURL);
      this.originInstance = overlay;
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
      map.addOverlay(overlay);
    }
  }
});

/***/ }),
/* 68 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-info-window',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    show: {
      type: Boolean
    },
    position: {
      type: Object
    },
    title: {
      type: String
    },
    width: {
      type: Number
    },
    height: {
      type: Number
    },
    maxWidth: {
      type: Number
    },
    offset: {
      type: Object
    },
    maximize: {
      type: Boolean
    },
    autoPan: {
      type: Boolean
    },
    closeOnClick: {
      type: Boolean,
      default: true
    },
    message: {
      type: String
    }
  },
  watch: {
    show(val) {
      val ? this.openInfoWindow() : this.closeInfoWindow();
    },
    'position.lng'(val, oldVal) {
      this.reload();
    },
    'position.lat'(val, oldVal) {
      this.reload();
    },
    'offset.width'(val, oldVal) {
      this.reload();
    },
    'offset.height'(val) {
      this.reload();
    },
    maxWidth() {
      this.reload();
    },
    width(val) {
      this.originInstance.setWidth(val);
    },
    height(val) {
      this.originInstance.setHeight(val);
    },
    title(val) {
      this.originInstance.setTitle(val);
    },
    maximize(val) {
      val ? this.originInstance.enableMaximize() : this.originInstance.disableMaximize();
    },
    autoPan(val) {
      val ? this.originInstance.enableAutoPan() : this.originInstance.disableAutoPan();
    },
    closeOnClick(val) {
      val ? this.originInstance.enableCloseOnClick() : this.originInstance.disableCloseOnClick();
    }
  },
  methods: {
    redraw() {
      this.originInstance.redraw();
    },
    load() {
      const { BMap, map, show, title, width, height, maxWidth, offset, autoPan, closeOnClick, message, maximize, bindObserver, $parent } = this;
      const $content = this.$el;
      const overlay = new BMap.InfoWindow($content, {
        width,
        height,
        title,
        maxWidth,
        offset: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["c" /* createSize */])(BMap, offset),
        enableAutoPan: autoPan,
        enableCloseOnClick: closeOnClick,
        enableMessage: typeof message === 'undefined',
        message
      });

      maximize ? overlay.enableMaximize() : overlay.disableMaximize();
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
      this.originInstance = overlay;
      overlay.redraw();[].forEach.call($content.querySelectorAll('img'), $img => {
        $img.onload = () => overlay.redraw();
      });
      bindObserver();
      this.$container = $parent.originInstance && $parent.originInstance.openInfoWindow ? $parent.originInstance : map;
      show && this.openInfoWindow();
    },
    bindObserver() {
      const MutationObserver = global.MutationObserver;
      if (!MutationObserver) {
        return;
      }
      const { $el, originInstance } = this;
      this.observer = new MutationObserver(mutations => originInstance.redraw());
      this.observer.observe($el, { attributes: true, childList: true, characterData: true, subtree: true });
    },
    openInfoWindow() {
      const { BMap, $container, position, originInstance } = this;
      $container.openInfoWindow(originInstance, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, position));
    },
    closeInfoWindow() {
      this.$container.closeInfoWindow(this.originInstance);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 69 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-label',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    content: {
      type: String
    },
    title: {
      type: String
    },
    offset: {},
    position: {},
    labelStyle: {},
    zIndex: {
      type: Number,
      default: 0
    },
    massClear: {
      type: Boolean,
      default: true
    }
  },
  watch: {
    content(val) {
      this.originInstance.setContent(val);
    },
    title(val) {
      this.originInstance.setTitle(val);
    },
    'offset.width'(val, oldVal) {
      const { BMap } = this;
      if (val.toString() !== oldVal.toString()) {
        this.originInstance.setOffset(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["c" /* createSize */])(BMap, { width: val, height: this.offset.height }));
      }
    },
    'offset.height'(val, oldVal) {
      const { BMap } = this;
      if (val.toString() !== oldVal.toString()) {
        this.originInstance.setOffset(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["c" /* createSize */])(BMap, {
          width: this.offset.width,
          height: val
        }));
      }
    },
    'position.lng'(val, oldVal) {
      const { BMap } = this;
      const lng = val;
      if (val.toString() !== oldVal.toString() && lng >= -180 && lng <= 180) {
        this.originInstance.setCenter(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng, lat: this.center.lat }));
      }
    },
    'position.lat'(val, oldVal) {
      const { BMap } = this;
      const lat = val;
      if (val.toString() !== oldVal.toString() && lat >= -74 && lat <= 74) {
        this.originInstance.setCenter(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng: this.center.lng, lat }));
      }
    },
    labelStyle: {
      handler(val) {
        this.originInstance.setStyle(val);
      },
      deep: true
    },
    zIndex(val) {
      this.originInstance.setZIndex(val);
    },
    massClear(val) {
      val ? this.originInstance.enableMassClear() : this.originInstance.disableMassClear();
    }
  },
  methods: {
    load() {
      const { BMap, map, content, title, offset, position, labelStyle, zIndex, massClear, $parent } = this;
      const overlay = new BMap.Label(content, {
        offset: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["c" /* createSize */])(BMap, offset),
        position: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, position),
        enableMassClear: massClear
      });
      this.originInstance = overlay;
      try {
        $parent.originInstance.setLabel(overlay);
      } catch (e) {
        map.addOverlay(overlay);
      }
      title && overlay.setTitle(title);
      labelStyle && overlay.setStyle(labelStyle);
      zIndex && overlay.setZIndex(zIndex);
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
    }
  }
});

/***/ }),
/* 70 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-marker',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    position: {},
    offset: {},
    icon: {},
    massClear: {
      type: Boolean,
      default: true
    },
    dragging: {
      type: Boolean,
      default: false
    },
    clicking: {
      type: Boolean,
      default: true
    },
    raiseOnDrag: {
      type: Boolean,
      default: false
    },
    draggingCursor: {
      type: String
    },
    rotation: {
      type: Number
    },
    shadow: {
      type: Object
    },
    title: {
      type: String
    },
    label: {
      type: Object
    },
    animation: {
      type: String
    },
    top: {
      type: Boolean,
      default: false
    },
    zIndex: {
      type: Number,
      default: 0
    }
  },
  watch: {
    'position.lng'(val, oldVal) {
      const { BMap, originInstance, position, renderByParent, $parent } = this;
      if (val !== oldVal && val >= -180 && val <= 180) {
        originInstance.setPosition(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng: val, lat: position.lat }));
      }
      renderByParent && $parent.reload();
    },
    'position.lat'(val, oldVal) {
      const { BMap, originInstance, position, renderByParent, $parent } = this;
      if (val !== oldVal && val >= -74 && val <= 74) {
        originInstance.setPosition(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng: position.lng, lat: val }));
      }
      renderByParent && $parent.reload();
    },
    'offset.width'(val, oldVal) {
      const { BMap, originInstance } = this;
      if (val !== oldVal) {
        originInstance.setOffset(new BMap.Size(val, this.offset.height));
      }
    },
    'offset.height'(val, oldVal) {
      const { BMap, originInstance } = this;
      if (val !== oldVal) {
        originInstance.setOffset(new BMap.Size(this.offset.width, val));
      }
    },
    icon: {
      deep: true,
      handler(val) {
        const { BMap, originInstance, rotation } = this;
        originInstance && originInstance.setIcon(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["b" /* createIcon */])(BMap, val));
        rotation && originInstance && originInstance.setRotation(rotation);
      }
    },
    massClear(val) {
      val ? this.originInstance.enableMassClear() : this.originInstance.disableMassClear();
    },
    dragging(val) {
      val ? this.originInstance.enableDragging() : this.originInstance.disableDragging();
    },
    clicking() {
      this.reload();
    },
    raiseOnDrag() {
      this.reload();
    },
    draggingCursor(val) {
      this.originInstance.setDraggingCursor(val);
    },
    rotation(val) {
      this.originInstance.setRotation(val);
    },
    shadow(val) {
      this.originInstance.setShadow(val);
    },
    title(val) {
      this.originInstance.setTitle(val);
    },
    label(val) {
      this.reload();
    },
    animation(val) {
      this.originInstance.setAnimation(global[val]);
    },
    top(val) {
      this.originInstance.setTop(val);
    },
    zIndex(val) {
      this.originInstance.setZIndex(val);
    }
  },
  methods: {
    load() {
      const { BMap, map, position, offset, icon, massClear, dragging, clicking, raiseOnDrag, draggingCursor, rotation, shadow, title, label, animation, top, renderByParent, $parent, zIndex } = this;
      const overlay = new BMap.Marker(new BMap.Point(position.lng, position.lat), {
        offset,
        icon: icon && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["b" /* createIcon */])(BMap, icon),
        enableMassClear: massClear,
        enableDragging: dragging,
        enableClicking: clicking,
        raiseOnDrag,
        draggingCursor,
        rotation,
        shadow,
        title
      });
      this.originInstance = overlay;
      label && overlay && overlay.setLabel(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["e" /* createLabel */])(BMap, label));
      overlay.setTop(top);
      overlay.setZIndex(zIndex);
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
      if (renderByParent) {
        $parent.reload();
      } else {
        map.addOverlay(overlay);
      }
      overlay.setAnimation(global[animation]);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 71 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//



/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-overlay',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    pane: {
      type: String
    }
  },
  watch: {
    pane() {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, $el, pane } = this;
      const $emit = this.$emit.bind(this);
      class CustomOverlay extends BMap.Overlay {
        initialize() {
          $emit('initialize', {
            BMap,
            map,
            el: $el,
            overlay: this
          });
          try {
            map.getPanes()[pane].appendChild($el);
          } catch (e) {}
          return $el;
        }
        draw() {
          $emit('draw', {
            BMap,
            map,
            el: $el,
            overlay: this
          });
        }
      }
      const overlay = new CustomOverlay();
      this.originInstance = overlay;
      map.addOverlay(overlay);
    }
  }
});

/***/ }),
/* 72 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);





/* harmony default export */ __webpack_exports__["default"] = ({
  render() {},
  name: 'bm-point-collection',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    points: {
      type: Array,
      default() {
        return [];
      }
    },
    shape: {
      type: String,
      default: 'BMAP_POINT_SHAPE_CIRCLE'
    },
    color: {
      type: String
    },
    size: {
      type: String,
      default: 'BMAP_POINT_SIZE_NORMAL'
    }
  },
  watch: {
    shape(val) {
      const { originInstance, color, size } = this;
      originInstance.setStyles({
        shape: global[val],
        color,
        size: global[size]
      });
    },
    size(val) {
      const { originInstance, color, shape } = this;
      originInstance.setStyles({
        shape: global[shape],
        color,
        size: global[val]
      });
    },
    color(val) {
      const { originInstance, shape, size } = this;
      originInstance.setStyles({
        shape: global[shape],
        color: val,
        size: global[size]
      });
    },
    points: {
      deep: true,
      handler(val) {
        const { originInstance } = this;
        originInstance.clear();
        originInstance.setPoints(val);
      }
    }
  },
  methods: {
    load() {
      const { BMap, map, points, shape, color, size } = this;
      const overlay = this.originInstance = new BMap.PointCollection(points.map(p => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, p)), {
        shape: global[shape],
        color,
        size: global[size]
      });
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
      map.addOverlay(overlay);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 73 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-polygon',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    path: {
      type: Array,
      default() {
        return [];
      }
    },
    strokeColor: {
      type: String
    },
    strokeWeight: {
      type: Number
    },
    strokeOpacity: {
      type: Number
    },
    strokeStyle: {
      type: String
    },
    fillColor: {
      type: String
    },
    fillOpacity: {
      type: Number
    },
    massClear: {
      type: Boolean,
      default: true
    },
    clicking: {
      type: Boolean,
      default: true
    },
    editing: {
      type: Boolean,
      default: false
    }
  },
  watch: {
    path: {
      handler(val, oldVal) {
        this.reload();
      },
      deep: true
    },
    strokeColor(val) {
      this.originInstance.setStrokeColor(val);
    },
    strokeOpacity(val) {
      this.originInstance.setStrokeOpacity(val);
    },
    strokeWeight(val) {
      this.originInstance.setStrokeWeight(val);
    },
    strokeStyle(val) {
      this.originInstance.setStrokeStyle(val);
    },
    fillColor(val) {
      this.originInstance.setFillColor(val);
    },
    fillOpacity(val) {
      this.originInstance.setFillOpacity(val);
    },
    editing(val) {
      val ? this.originInstance.enableEditing() : this.originInstance.disableEditing();
    },
    massClear(val) {
      val ? this.originInstance.enableMassClear() : this.originInstance.disableMassClear();
    },
    clicking(val) {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, path, strokeColor, strokeWeight, strokeOpacity, strokeStyle, fillColor, fillOpacity, editing, massClear, clicking } = this;
      const overlay = new BMap.Polygon(path.map(item => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng: item.lng, lat: item.lat })), {
        strokeColor,
        strokeWeight,
        strokeOpacity,
        strokeStyle,
        fillColor,
        fillOpacity,
        // enableEditing: editing,
        enableMassClear: massClear,
        enableClicking: clicking
      });
      this.originInstance = overlay;
      map.addOverlay(overlay);
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
      // 这里有一个诡异的bug，直接给 editing 赋值时会出现未知错误，因为使用下面的方法抹平。
      editing ? overlay.enableEditing() : overlay.disableEditing();
    }
  }
});

/***/ }),
/* 74 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__ = __webpack_require__(1);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__ = __webpack_require__(4);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_factory_js__ = __webpack_require__(2);





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-polyline',
  render() {},
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_mixins_common_js__["a" /* default */])('overlay')],
  props: {
    path: {
      type: Array
    },
    strokeColor: {
      type: String
    },
    strokeWeight: {
      type: Number
    },
    strokeOpacity: {
      type: Number
    },
    strokeStyle: {
      type: String
    },
    massClear: {
      type: Boolean,
      default: true
    },
    clicking: {
      type: Boolean,
      default: true
    },
    editing: {
      type: Boolean,
      default: false
    }
  },
  watch: {
    path: {
      handler(val, oldVal) {
        this.reload();
      },
      deep: true
    },
    strokeColor(val) {
      this.originInstance.setStrokeColor(val);
    },
    strokeOpacity(val) {
      this.originInstance.setStrokeOpacity(val);
    },
    strokeWeight(val) {
      this.originInstance.setStrokeWeight(val);
    },
    strokeStyle(val) {
      this.originInstance.setStrokeStyle(val);
    },
    editing(val) {
      val ? this.originInstance.enableEditing() : this.originInstance.disableEditing();
    },
    massClear(val) {
      val ? this.originInstance.enableMassClear() : this.originInstance.disableMassClear();
    },
    clicking(val) {
      this.reload();
    }
  },
  methods: {
    load() {
      const { BMap, map, path, strokeColor, strokeWeight, strokeOpacity, strokeStyle, editing, massClear, clicking } = this;
      const overlay = new BMap.Polyline(path.map(item => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_factory_js__["a" /* createPoint */])(BMap, { lng: item.lng, lat: item.lat })), {
        strokeColor,
        strokeWeight,
        strokeOpacity,
        strokeStyle,
        enableEditing: editing,
        enableMassClear: massClear,
        enableClicking: clicking
      });
      this.originInstance = overlay;
      map.addOverlay(overlay);
      __WEBPACK_IMPORTED_MODULE_1__base_bindEvent_js__["a" /* default */].call(this, overlay);
    }
  }
});

/***/ }),
/* 75 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_util_js__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-bus',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__["a" /* default */])('search')],
  props: {
    location: {
      type: [Object, String]
    },
    keyword: {
      type: String
    },
    panel: {
      type: Boolean,
      default: true
    },
    pageCapacity: {
      type: Number
    },
    autoViewport: {
      type: Boolean
    },
    selectFirstResult: {
      type: Boolean
    }
  },
  watch: {
    location: {
      handler(val) {
        const { originInstance, map } = this;
        originInstance.setLocation(val || map);
      },
      deep: true
    },
    keyword(val) {
      this.search(val);
    },
    panel() {
      this.reload();
    },
    autoViewport(val) {
      this.reload();
    },
    selectFirstResult(val) {
      this.reload();
    }
  },
  methods: {
    search(keyword) {
      const { originInstance } = this;
      originInstance.getBusList(keyword);
    },
    load() {
      const instance = this;
      const { location, selectFirstResult, autoViewport, highlightMode, keyword, search, BMap, map, originInstance } = this;
      const _location = location ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(location) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, location) : location : map;
      const route = this.originInstance = new BMap.BusLineSearch(_location, {
        renderOptions: {
          map,
          panel: this.$el,
          selectFirstResult,
          autoViewport,
          highlightMode
        },
        onGetBusListComplete(e) {
          if (originInstance && originInstance !== route) {
            originInstance.clearResults();
          }
          instance.$emit('getbuslistcomplete', e);
        },
        onGetBusLineComplete(e) {
          if (originInstance && originInstance !== route) {
            originInstance.clearResults();
          }
          instance.$emit('getbuslinecomplete', e);
        },
        onBusListHtmlSet(e) {
          instance.$emit('buslisthtmlset', e);
        },
        onBusLineHtmlSet(e) {
          instance.$emit('buslinehtmlset', e);
        },
        onMarkersSet(e) {
          instance.$emit('markersset', e);
        },
        onPolylinesSet(e) {
          instance.$emit('polylinesset', e);
        }
      });
      search(keyword);
    }
  }
});

/***/ }),
/* 76 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_util_js__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-driving',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__["a" /* default */])('search')],
  props: {
    location: {
      type: [Object, String]
    },
    start: {
      type: [Object, String]
    },
    end: {
      type: [Object, String]
    },
    startCity: {
      type: [String, Number]
    },
    endCity: {
      type: [String, Number]
    },
    waypoints: {
      type: Array
    },
    policy: {
      type: String
    },
    panel: {
      type: Boolean,
      default: true
    },
    autoViewport: {
      type: Boolean
    },
    selectFirstResult: {
      type: Boolean
    }
  },
  watch: {
    location: {
      handler(val) {
        const { originInstance, map } = this;
        originInstance.setLocation(val || map);
      },
      deep: true
    },
    start: {
      handler(val) {
        const { originInstance, end, startCity, endCity, waypoints, BMap, getWaypoints } = this;
        originInstance.search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, val), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, end), {
          startCity,
          endCity,
          waypoints: getWaypoints(waypoints)
        });
      },
      deep: true
    },
    end: {
      handler(val) {
        const { originInstance, start, startCity, endCity, waypoints, BMap, getWaypoints } = this;
        originInstance.search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, start), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, val), {
          startCity,
          endCity,
          waypoints: getWaypoints(waypoints)
        });
      },
      deep: true
    },
    startCity(val) {
      const { originInstance, start, end, endCity, waypoints, getWaypoints } = this;
      originInstance.search(start, end, {
        val,
        endCity,
        waypoints: getWaypoints(waypoints)
      });
    },
    endCity(val) {
      const { originInstance, start, end, startCity, waypoints, getWaypoints } = this;
      originInstance.search(start, end, {
        startCity,
        val,
        waypoints: getWaypoints(waypoints)
      });
    },
    waypoints: {
      handler(val) {
        const { originInstance, start, end, startCity, endCity, getWaypoints } = this;
        originInstance.search(start, end, {
          startCity,
          endCity,
          waypoints: getWaypoints(val)
        });
      },
      deep: true
    },
    panel() {
      this.reload();
    },
    policy(val) {
      this.reload();
    },
    autoViewport() {
      this.reload();
    },
    selectFirstResult() {
      this.reload();
    },
    highlightMode() {
      this.reload();
    }
  },
  methods: {
    search(start, end, { startCity, endCity, waypoints }) {
      const { originInstance, getWaypoints } = this;
      originInstance.search(start, end, {
        startCity,
        endCity,
        waypoints: getWaypoints(waypoints)
      });
    },
    getWaypoints(waypoints) {
      const { BMap } = this;
      if (waypoints) {
        return waypoints.map(position => __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, position));
      }
    },
    load() {
      const instance = this;
      const { map, BMap, location, policy, selectFirstResult, autoViewport, highlightMode, search, start, end, startCity, endCity, waypoints, originInstance, getWaypoints } = this;
      const _location = location ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(location) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, location) : location : map;
      const route = this.originInstance = new BMap.DrivingRoute(_location, {
        renderOptions: {
          map,
          // panel: panel && this.$el,
          panel: this.$el,
          selectFirstResult,
          autoViewport,
          highlightMode
        },
        policy: global[policy],
        onSearchComplete(e) {
          if (originInstance && originInstance !== route) {
            originInstance.clearResults();
          }
          instance.$emit('searchcomplete', e);
        },
        onMarkersSet(e) {
          instance.$emit('markersset', e);
        },
        onInfoHtmlSet(e) {
          instance.$emit('infohtmlset', e);
        },
        onPolylinesSet(e) {
          instance.$emit('polylinesset', e);
        },
        onResultsHtmlSet(e) {
          instance.$emit('resultshtmlset', e);
        }
      });
      search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, start), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, end), {
        startCity,
        endCity,
        waypoints: getWaypoints(waypoints)
      });
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 77 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_util_js__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-local-search',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__["a" /* default */])('search')],
  props: {
    location: {
      type: [Object, String]
    },
    keyword: {
      type: [Array, String]
    },
    panel: {
      type: Boolean,
      default: true
    },
    forceLocal: {
      type: Boolean
    },
    customData: {
      type: Object
    },
    bounds: {
      type: Object
    },
    nearby: {
      type: Object
    },
    // page: {
    //   type: Number
    // },
    pageCapacity: {
      type: Number
    },
    autoViewport: {
      type: Boolean
    },
    selectFirstResult: {
      type: Boolean
    }
  },
  watch: {
    location: {
      handler(val) {
        const { originInstance, search } = this;
        originInstance.setLocation(val || this.map);
        search();
      },
      deep: true
    },
    keyword() {
      this.search();
    },
    bounds: {
      handler(val) {
        const { searchInBounds } = this;
        searchInBounds(val);
      },
      deep: true
    },
    nearby: {
      handler(val) {
        const { searchNearby } = this;
        searchNearby(val);
      },
      deep: true
    },
    forceLocal() {
      this.reload();
    },
    customData: {
      deep: true,
      handler() {
        this.reload();
      }
    },
    // panel () {
    //   this.reload()
    // },
    pageCapacity(val) {
      this.originInstance && this.originInstance.setPageCapacity(val);
    },
    autoViewport(val) {
      this.originInstance && (val ? this.originInstance.enableAutoViewport() : this.originInstance.disableAutoViewport());
    },
    selectFirstResult(val) {
      this.originInstance && (val ? this.originInstance.enableFirstResultSelection() : this.originInstance.disableFirstResultSelection());
    },
    highlightMode() {
      this.reload();
    }
  },
  methods: {
    searchNearby(nearby) {
      const { originInstance, keyword, customData, BMap } = this;
      originInstance.searchNearby(keyword, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, nearby.center), nearby.radius, customData);
    },
    searchInBounds(bounds) {
      const { originInstance, keyword, customData, BMap } = this;
      originInstance.searchInBounds(keyword, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["d" /* createBounds */])(BMap, bounds), customData);
    },
    search() {
      const { originInstance, keyword, forceLocal, customData, nearby, bounds, searchNearby, searchInBounds } = this;
      nearby ? searchNearby(nearby) : bounds ? searchInBounds(bounds) : originInstance.search(keyword, {
        forceLocal,
        customData
      });
    },
    load() {
      const instance = this;
      const { map, BMap, search, pageCapacity, autoViewport, selectFirstResult, highlightMode, location, originInstance } = this;
      const _location = location ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(location) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, location) : location : map;
      const route = this.originInstance = new BMap.LocalSearch(_location, {
        onMarkersSet(e) {
          instance.$emit('markersset', e);
        },
        onInfoHtmlSet(e) {
          instance.$emit('infohtmlset', e);
        },
        onResultsHtmlSet(e) {
          instance.$emit('resultshtmlset', e);
        },
        onSearchComplete(e) {
          if (originInstance && originInstance !== route) {
            originInstance.clearResults();
          }
          instance.$emit('searchcomplete', e);
        },
        pageCapacity: pageCapacity,
        renderOptions: {
          map,
          // panel: panel && this.$el,
          panel: this.$el,
          selectFirstResult,
          autoViewport,
          highlightMode
        }
      });
      search();
    }
  }
});

/***/ }),
/* 78 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_util_js__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-transit',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__["a" /* default */])('search')],
  props: {
    location: {
      type: [Object, String]
    },
    start: {
      type: [Object, String]
    },
    end: {
      type: [Object, String]
    },
    panel: {
      type: Boolean,
      default: true
    },
    policy: {
      type: String
    },
    pageCapacity: {
      type: Number
    },
    autoViewport: {
      type: Boolean
    },
    selectFirstResult: {
      type: Boolean
    }
  },
  watch: {
    location: {
      handler(val) {
        const { originInstance, map } = this;
        originInstance.setLocation(val || map);
      },
      deep: true
    },
    start: {
      handler(val) {
        const { originInstance, end, BMap } = this;
        originInstance.search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, val), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, end));
      },
      deep: true
    },
    end: {
      handler(val) {
        const { originInstance, start, BMap } = this;
        originInstance.search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, start), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, val));
      },
      deep: true
    },
    panel() {
      this.reload();
    },
    policy(val) {
      this.originInstance.setPolicy(global[val]);
    },
    pageCapacity(val) {
      this.originInstance && this.originInstance.setPageCapacity(val);
    },
    autoViewport(val) {
      this.originInstance && (val ? this.originInstance.enableAutoViewport() : this.originInstance.disableAutoViewport());
    },
    selectFirstResult() {
      this.reload();
    },
    highlightMode() {
      this.reload();
    }
  },
  methods: {
    search(start, end) {
      const { originInstance } = this;
      originInstance.search(start, end);
    },
    load() {
      const instance = this;
      const { map, BMap, location, policy, pageCapacity, selectFirstResult, autoViewport, highlightMode, search, start, end, originInstance } = this;
      const _location = location ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(location) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, location) : location : map;
      const route = this.originInstance = new BMap.TransitRoute(_location, {
        renderOptions: {
          map,
          // panel: panel && this.$el,
          panel: this.$el,
          selectFirstResult,
          autoViewport,
          highlightMode
        },
        policy: global[policy],
        pageCapacity,
        onSearchComplete(e) {
          if (originInstance && originInstance !== route) {
            originInstance.clearResults();
          }
          instance.$emit('searchcomplete', e);
        },
        onMarkersSet(e) {
          instance.$emit('markersset', e);
        },
        onInfoHtmlSet(e) {
          instance.$emit('infohtmlset', e);
        },
        onPolylinesSet(e) {
          instance.$emit('polylinesset', e);
        },
        onResultsHtmlSet(e) {
          instance.$emit('resultshtmlset', e);
        }
      });
      search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(start) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, start) : start, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(end) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, end) : end);
    }
  }
});
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(3)))

/***/ }),
/* 79 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_factory_js__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__base_util_js__ = __webpack_require__(5);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__ = __webpack_require__(1);
//
//
//
//
//
//





/* harmony default export */ __webpack_exports__["default"] = ({
  name: 'bm-walking',
  mixins: [__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__base_mixins_common_js__["a" /* default */])('search')],
  props: {
    location: {
      type: [Object, String]
    },
    start: {
      type: [Object, String]
    },
    end: {
      type: [Object, String]
    },
    panel: {
      type: Boolean,
      default: true
    },
    pageCapacity: {
      type: Number
    },
    autoViewport: {
      type: Boolean
    },
    selectFirstResult: {
      type: Boolean
    }
  },
  watch: {
    location: {
      handler(val) {
        const { originInstance, map } = this;
        originInstance.setLocation(val || map);
      },
      deep: true
    },
    start: {
      handler(val) {
        const { originInstance, end, BMap } = this;
        originInstance.search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, val), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, end));
      },
      deep: true
    },
    end: {
      handler(val) {
        const { originInstance, start, BMap } = this;
        originInstance.search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, start), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["b" /* getPosition */])(BMap, val));
      },
      deep: true
    },
    panel() {
      this.reload();
    },
    autoViewport(val) {
      this.reload();
    },
    selectFirstResult(val) {
      this.reload();
    },
    highlightMode() {
      this.reload();
    }
  },
  methods: {
    search(start, end) {
      const { originInstance } = this;
      originInstance.search(start, end);
    },
    load() {
      const instance = this;
      const { map, BMap, location, selectFirstResult, autoViewport, highlightMode, search, start, end, originInstance } = this;
      const _location = location ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(location) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, location) : location : map;
      const route = this.originInstance = new BMap.WalkingRoute(_location, {
        renderOptions: {
          map,
          // panel: panel && this.$el,
          panel: this.$el,
          selectFirstResult,
          autoViewport,
          highlightMode
        },
        onSearchComplete(e) {
          if (originInstance && originInstance !== route) {
            originInstance.clearResults();
          }
          instance.$emit('searchcomplete', e);
        },
        onMarkersSet(e) {
          instance.$emit('markersset', e);
        },
        onInfoHtmlSet(e) {
          instance.$emit('infohtmlset', e);
        },
        onPolylinesSet(e) {
          instance.$emit('polylinesset', e);
        },
        onResultsHtmlSet(e) {
          instance.$emit('resultshtmlset', e);
        }
      });
      search(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(start) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, start) : start, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__base_util_js__["a" /* isPoint */])(end) ? __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__base_factory_js__["a" /* createPoint */])(BMap, end) : end);
    }
  }
});

/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {

(function (root, factory) {  
    if (true) {  
        module.exports = factory();
    } else if (typeof define === 'function' && define.amd) {  
        define(factory);  
    } else {
        root.BMapLib = root.BMapLib || {};
        root.BMapLib.Heatmap = root.BMapLib.Heatmap || factory();  
    }  
})(this, function() {
    function inherits (subClass, superClass, className) {
        var key, proto,
            selfProps = subClass.prototype,
            clazz = new Function();

        clazz.prototype = superClass.prototype;
        proto = subClass.prototype = new clazz();
        for (key in selfProps) {
            proto[key] = selfProps[key];
        }
        subClass.prototype.constructor = subClass;
        subClass.superClass = superClass.prototype;

        // 类名标识，兼容Class的toString，基本没用
        if ("string" == typeof className) {
            proto._className = className;
        }
    };
    var heatmapFactory = (function(){
        // store object constructor
        // a heatmap contains a store
        // the store has to know about the heatmap in order to trigger heatmap updates when datapoints get added
        var store = function store(hmap){

            var _ = {
                // data is a two dimensional array
                // a datapoint gets saved as data[point-x-value][point-y-value]
                // the value at [point-x-value][point-y-value] is the occurrence of the datapoint
                data: [],
                // tight coupling of the heatmap object
                heatmap: hmap
            };
            // the max occurrence - the heatmaps radial gradient alpha transition is based on it
            this.max = 1;

            this.get = function(key){
                return _[key];
            };
            this.set = function(key, value){
                _[key] = value;
            };
        }

        store.prototype = {
            // function for adding datapoints to the store
            // datapoints are usually defined by x and y but could also contain a third parameter which represents the occurrence
            addDataPoint: function(x, y){
                if(x < 0 || y < 0)
                    return;

                var me = this,
                    heatmap = me.get("heatmap"),
                    data = me.get("data");

                if(!data[x])
                    data[x] = [];

                if(!data[x][y])
                    data[x][y] = 0;

                // if count parameter is set increment by count otherwise by 1
                data[x][y]+=(arguments.length<3)?1:arguments[2];
                
                me.set("data", data);
                // do we have a new maximum?
                if(me.max < data[x][y]){
                    // max changed, we need to redraw all existing(lower) datapoints
                    heatmap.get("actx").clearRect(0,0,heatmap.get("width"),heatmap.get("height"));
                    me.setDataSet({ max: data[x][y], data: data }, true);
                    return;
                }
                heatmap.drawAlpha(x, y, data[x][y], true);
            },
            setDataSet: function(obj, internal){
                var me = this,
                    heatmap = me.get("heatmap"),
                    data = [],
                    d = obj.data,
                    dlen = d.length;
                // clear the heatmap before the data set gets drawn
                heatmap.clear();
                this.max = obj.max;
                // if a legend is set, update it
                heatmap.get("legend") && heatmap.get("legend").update(obj.max);
                
                if(internal != null && internal){
                    for(var one in d){
                        // jump over undefined indexes
                        if(one === undefined)
                            continue;
                        for(var two in d[one]){
                            if(two === undefined)
                                continue;
                            // if both indexes are defined, push the values into the array
                            heatmap.drawAlpha(one, two, d[one][two], false);   
                        }
                    }
                }else{
                    while(dlen--){
                        var point = d[dlen];
                        heatmap.drawAlpha(point.x, point.y, point.count, false);
                        if(!data[point.x])
                            data[point.x] = [];

                        if(!data[point.x][point.y])
                            data[point.x][point.y] = 0;

                        data[point.x][point.y] = point.count;
                    }
                }
                heatmap.colorize();
                this.set("data", d);
            },
            exportDataSet: function(){
                var me = this,
                    data = me.get("data"),
                    exportData = [];

                for(var one in data){
                    // jump over undefined indexes
                    if(one === undefined)
                        continue;
                    for(var two in data[one]){
                        if(two === undefined)
                            continue;
                        // if both indexes are defined, push the values into the array
                        exportData.push({x: parseInt(one, 10), y: parseInt(two, 10), count: data[one][two]});
                    }
                }

                return { max: me.max, data: exportData };
            },
            generateRandomDataSet: function(points){
                var heatmap = this.get("heatmap"),
                w = heatmap.get("width"),
                h = heatmap.get("height");
                var randomset = {},
                max = Math.floor(Math.random()*1000+1);
                randomset.max = max;
                var data = [];
                while(points--){
                    data.push({x: Math.floor(Math.random()*w+1), y: Math.floor(Math.random()*h+1), count: Math.floor(Math.random()*max+1)});
                }
                randomset.data = data;
                this.setDataSet(randomset);
            }
        };

        var legend = function legend(config){
            this.config = config;

            var _ = {
                element: null,
                labelsEl: null,
                gradientCfg: null,
                ctx: null
            };
            this.get = function(key){
                return _[key];
            };
            this.set = function(key, value){
                _[key] = value;
            };
            this.init();
        };
        legend.prototype = {
            init: function(){
                var me = this,
                    config = me.config,
                    title = config.title || "Legend",
                    position = config.position,
                    offset = config.offset || 10,
                    gconfig = config.gradient,
                    labelsEl = document.createElement("ul"),
                    labelsHtml = "",
                    grad, element, gradient, positionCss = "";

                me.processGradientObject();
                
                // Positioning

                // top or bottom
                if(position.indexOf('t') > -1){
                    positionCss += 'top:'+offset+'px;';
                }else{
                    positionCss += 'bottom:'+offset+'px;';
                }

                // left or right
                if(position.indexOf('l') > -1){
                    positionCss += 'left:'+offset+'px;';
                }else{
                    positionCss += 'right:'+offset+'px;';
                }

                element = document.createElement("div");
                element.style.cssText = "border-radius:5px;position:absolute;"+positionCss+"font-family:Helvetica; width:256px;z-index:10000000000; background:rgba(255,255,255,1);padding:10px;border:1px solid black;margin:0;";
                element.innerHTML = "<h3 style='padding:0;margin:0;text-align:center;font-size:16px;'>"+title+"</h3>";
                // create gradient in canvas
                labelsEl.style.cssText = "position:relative;font-size:12px;display:block;list-style:none;list-style-type:none;margin:0;height:15px;";
                

                // create gradient element
                gradient = document.createElement("div");
                gradient.style.cssText = ["position:relative;display:block;width:256px;height:15px;border-bottom:1px solid black; background-image:url(",me.createGradientImage(),");"].join("");

                element.appendChild(labelsEl);
                element.appendChild(gradient);
                
                me.set("element", element);
                me.set("labelsEl", labelsEl);

                me.update(1);
            },
            processGradientObject: function(){
                // create array and sort it
                var me = this,
                    gradientConfig = this.config.gradient,
                    gradientArr = [];

                for(var key in gradientConfig){
                    if(gradientConfig.hasOwnProperty(key)){
                        gradientArr.push({ stop: key, value: gradientConfig[key] });
                    }
                }
                gradientArr.sort(function(a, b){
                    return (a.stop - b.stop);
                });
                gradientArr.unshift({ stop: 0, value: 'rgba(0,0,0,0)' });

                me.set("gradientArr", gradientArr);
            },
            createGradientImage: function(){
                var me = this,
                    gradArr = me.get("gradientArr"),
                    length = gradArr.length,
                    canvas = document.createElement("canvas"),
                    ctx = canvas.getContext("2d"),
                    grad;
                // the gradient in the legend including the ticks will be 256x15px
                canvas.width = "256";
                canvas.height = "15";

                grad = ctx.createLinearGradient(0,5,256,10);

                for(var i = 0; i < length; i++){
                    grad.addColorStop(1/(length-1) * i, gradArr[i].value);
                }

                ctx.fillStyle = grad;
                ctx.fillRect(0,5,256,10);
                ctx.strokeStyle = "black";
                ctx.beginPath();

                for(var i = 0; i < length; i++){
                    ctx.moveTo(((1/(length-1)*i*256) >> 0)+.5, 0);
                    ctx.lineTo(((1/(length-1)*i*256) >> 0)+.5, (i==0)?15:5);
                }
                ctx.moveTo(255.5, 0);
                ctx.lineTo(255.5, 15);
                ctx.moveTo(255.5, 4.5);
                ctx.lineTo(0, 4.5);
                
                ctx.stroke();

                // we re-use the context for measuring the legends label widths
                me.set("ctx", ctx);

                return canvas.toDataURL();
            },
            getElement: function(){
                return this.get("element");
            },
            update: function(max){
                var me = this,
                    gradient = me.get("gradientArr"),
                    ctx = me.get("ctx"),
                    labels = me.get("labelsEl"),
                    labelText, labelsHtml = "", offset;

                for(var i = 0; i < gradient.length; i++){

                    labelText = max*gradient[i].stop >> 0;
                    offset = (ctx.measureText(labelText).width/2) >> 0;

                    if(i == 0){
                        offset = 0;
                    }
                    if(i == gradient.length-1){
                        offset *= 2;
                    }
                    labelsHtml += '<li style="position:absolute;left:'+(((((1/(gradient.length-1)*i*256) || 0)) >> 0)-offset+.5)+'px">'+labelText+'</li>';
                }       
                labels.innerHTML = labelsHtml;
            }
        };

        // heatmap object constructor
        var heatmap = function heatmap(config){
            // private variables
            var _ = {
                radius : 40,
                element : {},
                canvas : {},
                acanvas: {},
                ctx : {},
                actx : {},
                legend: null,
                visible : true,
                width : 0,
                height : 0,
                max : false,
                gradient : false,
                opacity: 180,
                premultiplyAlpha: false,
                bounds: {
                    l: 1000,
                    r: 0,
                    t: 1000,
                    b: 0
                },
                debug: false
            };
            // heatmap store containing the datapoints and information about the maximum
            // accessible via instance.store
            this.store = new store(this);

            this.get = function(key){
                return _[key];
            };
            this.set = function(key, value){
                _[key] = value;
            };
            // configure the heatmap when an instance gets created
            this.configure(config);
            // and initialize it
            this.init();
        };

        // public functions
        heatmap.prototype = {
            configure: function(config){
                var me = this,
                    rout, rin;

                me.set("radius", config["radius"] || 40);
                me.set("element", (config.element instanceof Object)?config.element:document.getElementById(config.element));
                me.set("visible", (config.visible != null)?config.visible:true);
                me.set("max", config.max || false);
                me.set("gradient", config.gradient || { 0.45: "rgb(0,0,255)", 0.55: "rgb(0,255,255)", 0.65: "rgb(0,255,0)", 0.95: "yellow", 1.0: "rgb(255,0,0)"});    // default is the common blue to red gradient
                me.set("opacity", parseInt(255/(100/config.opacity), 10) || 180);
                me.set("width", config.width || 0);
                me.set("height", config.height || 0);
                me.set("debug", config.debug);

                if(config.legend){
                    var legendCfg = config.legend;
                    legendCfg.gradient = me.get("gradient");
                    me.set("legend", new legend(legendCfg));
                }
                    
            },
            resize: function () {
                var me = this,
                    element = me.get("element"),
                    canvas = me.get("canvas"),
                    acanvas = me.get("acanvas");
                canvas.width = acanvas.width = me.get("width") || element.style.width.replace(/px/, "") || me.getWidth(element);
                this.set("width", canvas.width);
                canvas.height = acanvas.height = me.get("height") || element.style.height.replace(/px/, "") || me.getHeight(element);
                this.set("height", canvas.height);
            },

            init: function(){
                var me = this,
                    canvas = document.createElement("canvas"),
                    acanvas = document.createElement("canvas"),
                    ctx = canvas.getContext("2d"),
                    actx = acanvas.getContext("2d"),
                    element = me.get("element");

                
                me.initColorPalette();

                me.set("canvas", canvas);
                me.set("ctx", ctx);
                me.set("acanvas", acanvas);
                me.set("actx", actx);

                me.resize();
                canvas.style.cssText = acanvas.style.cssText = "position:absolute;top:0;left:0;z-index:10000000;";
                
                if(!me.get("visible"))
                    canvas.style.display = "none";

                element.appendChild(canvas);
                if(me.get("legend")){
                    element.appendChild(me.get("legend").getElement());
                }
                
                // debugging purposes only
                if(me.get("debug"))
                    document.body.appendChild(acanvas);
                
                actx.shadowOffsetX = 15000; 
                actx.shadowOffsetY = 15000; 
                actx.shadowBlur = 15; 
            },
            initColorPalette: function(){

                var me = this,
                    canvas = document.createElement("canvas"),
                    gradient = me.get("gradient"),
                    ctx, grad, testData;

                canvas.width = "1";
                canvas.height = "256";
                ctx = canvas.getContext("2d");
                grad = ctx.createLinearGradient(0,0,1,256);

                // Test how the browser renders alpha by setting a partially transparent pixel
                // and reading the result.  A good browser will return a value reasonably close
                // to what was set.  Some browsers (e.g. on Android) will return a ridiculously wrong value.
                testData = ctx.getImageData(0,0,1,1);
                testData.data[0] = testData.data[3] = 64; // 25% red & alpha
                testData.data[1] = testData.data[2] = 0; // 0% blue & green
                ctx.putImageData(testData, 0, 0);
                testData = ctx.getImageData(0,0,1,1);
                me.set("premultiplyAlpha", (testData.data[0] < 60 || testData.data[0] > 70));
                
                for(var x in gradient){
                    grad.addColorStop(x, gradient[x]);
                }

                ctx.fillStyle = grad;
                ctx.fillRect(0,0,1,256);

                me.set("gradient", ctx.getImageData(0,0,1,256).data);
            },
            getWidth: function(element){
                var width = element.offsetWidth;
                if(element.style.paddingLeft){
                    width+=element.style.paddingLeft;
                }
                if(element.style.paddingRight){
                    width+=element.style.paddingRight;
                }

                return width;
            },
            getHeight: function(element){
                var height = element.offsetHeight;
                if(element.style.paddingTop){
                    height+=element.style.paddingTop;
                }
                if(element.style.paddingBottom){
                    height+=element.style.paddingBottom;
                }

                return height;
            },
            colorize: function(x, y){
                // get the private variables
                var me = this,
                    width = me.get("width"),
                    radius = me.get("radius"),
                    height = me.get("height"),
                    actx = me.get("actx"),
                    ctx = me.get("ctx"),
                    x2 = radius * 3,
                    premultiplyAlpha = me.get("premultiplyAlpha"),
                    palette = me.get("gradient"),
                    opacity = me.get("opacity"),
                    bounds = me.get("bounds"),
                    left, top, bottom, right, 
                    image, length, alpha, offset, finalAlpha;
                
                if(x != null && y != null){
                    if(x+x2>width){
                        x=width-x2;
                    }
                    if(x<0){
                        x=0;
                    }
                    if(y<0){
                        y=0;
                    }
                    if(y+x2>height){
                        y=height-x2;
                    }
                    left = x;
                    top = y;
                    right = x + x2;
                    bottom = y + x2;

                }else{
                    if(bounds['l'] < 0){
                        left = 0;
                    }else{
                        left = bounds['l'];
                    }
                    if(bounds['r'] > width){
                        right = width;
                    }else{
                        right = bounds['r'];
                    }
                    if(bounds['t'] < 0){
                        top = 0;
                    }else{
                        top = bounds['t'];
                    }
                    if(bounds['b'] > height){
                        bottom = height;
                    }else{
                        bottom = bounds['b'];
                    }    
                }

                image = actx.getImageData(left, top, right-left, bottom-top);
                length = image.data.length;
                // loop thru the area
                for(var i=3; i < length; i+=4){

                    // [0] -> r, [1] -> g, [2] -> b, [3] -> alpha
                    alpha = image.data[i],
                    offset = alpha*4;

                    if(!offset)
                        continue;

                    // we ve started with i=3
                    // set the new r, g and b values
                    finalAlpha = (alpha < opacity)?alpha:opacity;
                    image.data[i-3]=palette[offset];
                    image.data[i-2]=palette[offset+1];
                    image.data[i-1]=palette[offset+2];
                    
                    if (premultiplyAlpha) {
                    // To fix browsers that premultiply incorrectly, we'll pass in a value scaled
                    // appropriately so when the multiplication happens the correct value will result.
                    image.data[i-3] /= 255/finalAlpha;
                    image.data[i-2] /= 255/finalAlpha;
                    image.data[i-1] /= 255/finalAlpha;
                    }
                    
                    // we want the heatmap to have a gradient from transparent to the colors
                    // as long as alpha is lower than the defined opacity (maximum), we'll use the alpha value
                    image.data[i] = finalAlpha;
                }
                // the rgb data manipulation didn't affect the ImageData object(defined on the top)
                // after the manipulation process we have to set the manipulated data to the ImageData object
                // image.data = imageData;
                ctx.putImageData(image, left, top);
            },
            drawAlpha: function(x, y, count, colorize){
                // storing the variables because they will be often used
                var me = this,
                    radius = me.get("radius"),
                    ctx = me.get("actx"),
                    max = me.get("max"),
                    bounds = me.get("bounds"),
                    xb = x - (1.5 * radius) >> 0, yb = y - (1.5 * radius) >> 0,
                    xc = x + (1.5 * radius) >> 0, yc = y + (1.5 * radius) >> 0;

                ctx.shadowColor = ('rgba(0,0,0,'+((count)?(count/me.store.max):'0.1')+')');

                ctx.shadowOffsetX = 15000; 
                ctx.shadowOffsetY = 15000; 
                ctx.shadowBlur = 15; 

                ctx.beginPath();
                ctx.arc(x - 15000, y - 15000, radius, 0, Math.PI * 2, true);
                ctx.closePath();
                ctx.fill();
                if(colorize){
                    // finally colorize the area
                    me.colorize(xb,yb);
                }else{
                    // or update the boundaries for the area that then should be colorized
                    if(xb < bounds["l"]){
                        bounds["l"] = xb;
                    }
                    if(yb < bounds["t"]){
                        bounds["t"] = yb;
                    }
                    if(xc > bounds['r']){
                        bounds['r'] = xc;
                    }
                    if(yc > bounds['b']){
                        bounds['b'] = yc;
                    }
                }
            },
            toggleDisplay: function(){
                var me = this,
                    visible = me.get("visible"),
                canvas = me.get("canvas");

                if(!visible)
                    canvas.style.display = "block";
                else
                    canvas.style.display = "none";

                me.set("visible", !visible);
            },
            // dataURL export
            getImageData: function(){
                return this.get("canvas").toDataURL();
            },
            clear: function(){
                var me = this,
                    w = me.get("width"),
                    h = me.get("height");

                me.store.set("data",[]);
                // @TODO: reset stores max to 1
                //me.store.max = 1;
                me.get("ctx").clearRect(0,0,w,h);
                me.get("actx").clearRect(0,0,w,h);
            },
            cleanup: function(){
                var me = this;
                me.get("element").removeChild(me.get("canvas"));
            }
        };

        return {
            create: function(config){
                return new heatmap(config);
            }, 
            util: {
                mousePosition: function(ev){
                    // this doesn't work right
                    // rather use
                    /*
                        // this = element to observe
                        var x = ev.pageX - this.offsetLeft;
                        var y = ev.pageY - this.offsetTop;

                    */
                    var x, y;

                    if (ev.layerX) { // Firefox
                        x = ev.layerX;
                        y = ev.layerY;
                    } else if (ev.offsetX) { // Opera
                        x = ev.offsetX;
                        y = ev.offsetY;
                    }
                    if(typeof(x)=='undefined')
                        return;

                    return [x,y];
                }
            }
        };
    })();

    var HeatmapOverlay = function(opts) {
        try {
            BMap;
        } catch (e) {
            throw Error('Baidu Map JS API is not ready yet!');
        }
        if (!HeatmapOverlay._isExtended) {
            HeatmapOverlay._isExtended = true;
            inherits(HeatmapOverlay, BMap.Overlay, "HeatmapOverlay");
            var newHeatmap = new HeatmapOverlay(opts);
            this.__proto__ = newHeatmap.__proto__;
        }
        // HeatmapOverlay.prototype = new BMap.Overlay();
        this.conf = opts;
        this.heatmap = null;
        this.latlngs = [];
        this.bounds = null;
        this._moveendHandler = this._moveendHandler.bind(this);
    }

    HeatmapOverlay.prototype.initialize = function(map) {
        this._map = map;
        var el = document.createElement("div");
        el.style.position = "absolute";
        el.style.top = 0;
        el.style.left = 0;
        el.style.border = 0;
        el.style.width = this._map.getSize().width + "px";
        el.style.height = this._map.getSize().height + "px";
        this.conf.element = el;
        map.getPanes().mapPane.appendChild(el);
        this.heatmap = heatmapFactory.create(this.conf);
        this._div = el;
        return el;
    }

    HeatmapOverlay.prototype.draw = function() {
        var currentBounds = this._map.getBounds();

        if (currentBounds.equals(this.bounds)) {
            return;
        }
        this.bounds = currentBounds;

        var ne = this._map.pointToOverlayPixel(currentBounds.getNorthEast()),
            sw = this._map.pointToOverlayPixel(currentBounds.getSouthWest());
        if (!ne || !sw) {
            return
        }
        var topY = ne.y,
            leftX = sw.x,
            h = sw.y - ne.y,
            w = ne.x - sw.x;

        this.conf.element.style.left = leftX + 'px';
        this.conf.element.style.top = topY + 'px';
        this.conf.element.style.width = w + 'px';
        this.conf.element.style.height = h + 'px';
        this.heatmap.store.get("heatmap").resize();

        if (this.latlngs.length > 0) {
            this.heatmap.clear();

            var len = this.latlngs.length;
            var d = {
                max: this.heatmap.store.max,
                data: []
            };

            while (len--) {
                var latlng = this.latlngs[len].latlng;

                if (!currentBounds.containsPoint(latlng)) {
                    continue;
                }

                var divPixel = this._map.pointToOverlayPixel(latlng),
                    screenPixel = new BMap.Pixel(divPixel.x - leftX, divPixel.y - topY);
                var roundedPoint = this.pixelTransform(screenPixel);
                d.data.push({
                    x: roundedPoint.x,
                    y: roundedPoint.y,
                    count: this.latlngs[len].c
                });
            }
            this.heatmap.store.setDataSet(d);
        }
    }

    HeatmapOverlay.prototype.pixelTransform = function(p) {
        var w = this.heatmap.get("width"),
            h = this.heatmap.get("height");

        while (p.x < 0) {
            p.x += w;
        }

        while (p.x > w) {
            p.x -= w;
        }

        while (p.y < 0) {
            p.y += h;
        }

        while (p.y > h) {
            p.y -= h;
        }

        p.x = (p.x >> 0);
        p.y = (p.y >> 0);

        return p;
    }

    HeatmapOverlay.prototype._moveendHandler = function (e) {
        this.setDataSet(this._data);
        delete this._data;
        this._map.removeEventListener('moveend', this._moveendHandler);
    }

    HeatmapOverlay.prototype.setDataSet = function(data) {
        if (!this._map) {
            return;
        }
        var currentBounds = this._map.getBounds();

        var ne = this._map.pointToOverlayPixel(currentBounds.getNorthEast()),
            sw = this._map.pointToOverlayPixel(currentBounds.getSouthWest());
        if (!ne || !sw) {
            this._data = data
            this._map.addEventListener('moveend', this._moveendHandler);
        }

        var mapdata = {
            max: data.max,
            data: []
        };
        var d = data.data,
            dlen = d.length;


        this.latlngs = [];

        while (dlen--) {
            var latlng = new BMap.Point(d[dlen].lng, d[dlen].lat);
            this.latlngs.push({
                latlng: latlng,
                c: d[dlen].count
            });

            if (!currentBounds.containsPoint(latlng)) {
                continue;
            }

            var divPixel = this._map.pointToOverlayPixel(latlng),
                leftX = this._map.pointToOverlayPixel(currentBounds.getSouthWest()).x,
                topY = this._map.pointToOverlayPixel(currentBounds.getNorthEast()).y,
                screenPixel = new BMap.Pixel(divPixel.x - leftX, divPixel.y - topY);
            var point = this.pixelTransform(screenPixel);

            mapdata.data.push({
                x: point.x,
                y: point.y,
                count: d[dlen].count
            });
        }
        this.heatmap.clear();
        this.heatmap.store.setDataSet(mapdata);
    }

    HeatmapOverlay.prototype.addDataPoint = function(lng, lat, count) {
        var latlng = new BMap.Point(lng, lat),
            point = this.pixelTransform(this._map.pointToOverlayPixel(latlng));

        this.heatmap.store.addDataPoint(point.x, point.y, count);
        this.latlngs.push({
            latlng: latlng,
            c: count
        });
    }

    HeatmapOverlay.prototype.toggle = function() {
        this.heatmap.toggleDisplay();
    }

    return HeatmapOverlay;
});


/***/ }),
/* 81 */
/***/ (function(module, exports, __webpack_require__) {

/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
	 true ? module.exports = factory() :
	typeof define === 'function' && define.amd ? define(factory) :
	(global.BMapLib = global.BMapLib || {}, global.BMapLib.MarkerClusterer = factory());
}(this, (function () { 'use strict';

var __commonjs_global = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : this;
function __commonjs(fn, module) { return module = { exports: {} }, fn(module, module.exports, __commonjs_global), module.exports; }


var index$1 = __commonjs(function (module, exports, global) {
(function (root, factory) {  
    if (typeof exports === 'object') {  
        module.exports = factory();
    } else if (true) {  
        !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
				__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
				(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
				__WEBPACK_AMD_DEFINE_FACTORY__),
				__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));  
    } else {
        root.BMapLib = root.BMapLib || {};
        root.BMapLib.TextIconOverlay = root.BMapLib.TextIconOverlay || factory();  
    }  
})(__commonjs_global, function() {
    var T,
    baidu = T = baidu || {version: "1.3.8"}; 
    var context = {};
    //提出guid，防止在与老版本Tangram混用时
    //在下一行错误的修改context[undefined]
    baidu.guid = "$BAIDU$";

    //Tangram可能被放在闭包中
    //一些页面级别唯一的属性，需要挂载在context[baidu.guid]上
    context[baidu.guid] = context[baidu.guid] || {};

    /**         
    * @ignore
    * @namespace baidu.dom 操作dom的方法。
    */
    baidu.dom = baidu.dom || {};

    
    /**
     * 从文档中获取指定的DOM元素
     * @name baidu.dom.g
     * @function
     * @grammar baidu.dom.g(id)
     * @param {string|HTMLElement} id 元素的id或DOM元素
     * @shortcut g,T.G
     * @meta standard
     * @see baidu.dom.q
     *             
     * @returns {HTMLElement|null} 获取的元素，查找不到时返回null,如果参数不合法，直接返回参数
     */
    baidu.dom.g = function (id) {
        if ('string' == typeof id || id instanceof String) {
            return document.getElementById(id);
        } else if (id && id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) {
            return id;
        }
        return null;
    };

    // 声明快捷方法
    baidu.g = baidu.G = baidu.dom.g;

    /**
     * 获取目标元素所属的document对象
     * @name baidu.dom.getDocument
     * @function
     * @grammar baidu.dom.getDocument(element)
     * @param {HTMLElement|string} element 目标元素或目标元素的id
     * @meta standard
     * @see baidu.dom.getWindow
     *             
     * @returns {HTMLDocument} 目标元素所属的document对象
     */
    baidu.dom.getDocument = function (element) {
        element = baidu.dom.g(element);
        return element.nodeType == 9 ? element : element.ownerDocument || element.document;
    };

    /**
         * @ignore
     * @namespace baidu.lang 对语言层面的封装，包括类型判断、模块扩展、继承基类以及对象自定义事件的支持。
    */
    baidu.lang = baidu.lang || {};

    /**
     * 判断目标参数是否string类型或String对象
     * @name baidu.lang.isString
     * @function
     * @grammar baidu.lang.isString(source)
     * @param {Any} source 目标参数
     * @shortcut isString
     * @meta standard
     * @see baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate
     *             
     * @returns {boolean} 类型判断结果
     */
    baidu.lang.isString = function (source) {
        return '[object String]' == Object.prototype.toString.call(source);
    };

    // 声明快捷方法
    baidu.isString = baidu.lang.isString;

    /**
     * 从文档中获取指定的DOM元素
     * **内部方法**
     * 
     * @param {string|HTMLElement} id 元素的id或DOM元素
     * @meta standard
     * @return {HTMLElement} DOM元素，如果不存在，返回null，如果参数不合法，直接返回参数
     */
    baidu.dom._g = function (id) {
        if (baidu.lang.isString(id)) {
            return document.getElementById(id);
        }
        return id;
    };

    // 声明快捷方法
    baidu._g = baidu.dom._g;

    /**
     * @ignore
     * @namespace baidu.browser 判断浏览器类型和特性的属性。
     */
    baidu.browser = baidu.browser || {};

    if (/msie (\d+\.\d)/i.test(navigator.userAgent)) {
        //IE 8下，以documentMode为准
        //在百度模板中，可能会有$，防止冲突，将$1 写成 \x241
        /**
         * 判断是否为ie浏览器
         * @property ie ie版本号
         * @grammar baidu.browser.ie
         * @meta standard
         * @shortcut ie
         * @see baidu.browser.firefox,baidu.browser.safari,baidu.browser.opera,baidu.browser.chrome,baidu.browser.maxthon 
         */
        baidu.browser.ie = baidu.ie = document.documentMode || + RegExp['\x241'];
    }

    /**
     * 获取目标元素的computed style值。如果元素的样式值不能被浏览器计算，则会返回空字符串（IE）
     *
     * @author berg
     * @name baidu.dom.getComputedStyle
     * @function
     * @grammar baidu.dom.getComputedStyle(element, key)
     * @param {HTMLElement|string} element 目标元素或目标元素的id
     * @param {string} key 要获取的样式名
     *
     * @see baidu.dom.getStyle
     *             
     * @returns {string} 目标元素的computed style值
     */

    baidu.dom.getComputedStyle = function(element, key){
        element = baidu.dom._g(element);
        var doc = baidu.dom.getDocument(element),
            styles;
        if (doc.defaultView && doc.defaultView.getComputedStyle) {
            styles = doc.defaultView.getComputedStyle(element, null);
            if (styles) {
                return styles[key] || styles.getPropertyValue(key);
            }
        }
        return ''; 
    };

    /**
     * 提供给setStyle与getStyle使用
     */
    baidu.dom._styleFixer = baidu.dom._styleFixer || {};

    /**
     * 提供给setStyle与getStyle使用
     */
    baidu.dom._styleFilter = baidu.dom._styleFilter || [];

    /**
     * 为获取和设置样式的过滤器
     * @private
     * @meta standard
     */
    baidu.dom._styleFilter.filter = function (key, value, method) {
        for (var i = 0, filters = baidu.dom._styleFilter, filter; filter = filters[i]; i++) {
            if (filter = filter[method]) {
                value = filter(key, value);
            }
        }
        return value;
    };

    /**
         * @ignore
     * @namespace baidu.string 操作字符串的方法。
     */
    baidu.string = baidu.string || {};

    /**
     * 将目标字符串进行驼峰化处理
     * @name baidu.string.toCamelCase
     * @function
     * @grammar baidu.string.toCamelCase(source)
     * @param {string} source 目标字符串
     * @remark
     * 支持单词以“-_”分隔
     * @meta standard
     *             
     * @returns {string} 驼峰化处理后的字符串
     */
    baidu.string.toCamelCase = function (source) {
        //提前判断，提高getStyle等的效率 thanks xianwei
        if (source.indexOf('-') < 0 && source.indexOf('_') < 0) {
            return source;
        }
        return source.replace(/[-_][^-_]/g, function (match) {
            return match.charAt(1).toUpperCase();
        });
    };

    /**
     * 获取目标元素的样式值
     * @name baidu.dom.getStyle
     * @function
     * @grammar baidu.dom.getStyle(element, key)
     * @param {HTMLElement|string} element 目标元素或目标元素的id
     * @param {string} key 要获取的样式名
     * @remark
     * 
     * 为了精简代码，本模块默认不对任何浏览器返回值进行归一化处理（如使用getStyle时，不同浏览器下可能返回rgb颜色或hex颜色），也不会修复浏览器的bug和差异性（如设置IE的float属性叫styleFloat，firefox则是cssFloat）。<br />
     * baidu.dom._styleFixer和baidu.dom._styleFilter可以为本模块提供支持。<br />
     * 其中_styleFilter能对颜色和px进行归一化处理，_styleFixer能对display，float，opacity，textOverflow的浏览器兼容性bug进行处理。	
     * @shortcut getStyle
     * @meta standard
     * @see baidu.dom.setStyle,baidu.dom.setStyles, baidu.dom.getComputedStyle
     *             
     * @returns {string} 目标元素的样式值
     */
    baidu.dom.getStyle = function (element, key) {
        var dom = baidu.dom;

        element = dom.g(element);
        key = baidu.string.toCamelCase(key);
        //computed style, then cascaded style, then explicitly set style.
        var value = element.style[key] ||
                    (element.currentStyle ? element.currentStyle[key] : "") || 
                    dom.getComputedStyle(element, key);

        // 在取不到值的时候，用fixer进行修正
        if (!value) {
            var fixer = dom._styleFixer[key];
            if(fixer){
                value = fixer.get ? fixer.get(element) : baidu.dom.getStyle(element, fixer);
            }
        }

        /* 检查结果过滤器 */
        if (fixer = dom._styleFilter) {
            value = fixer.filter(key, value, 'get');
        }

        return value;
    };

    // 声明快捷方法
    baidu.getStyle = baidu.dom.getStyle;


    if (/opera\/(\d+\.\d)/i.test(navigator.userAgent)) {
    /**
     * 判断是否为opera浏览器
     * @property opera opera版本号
     * @grammar baidu.browser.opera
     * @meta standard
     * @see baidu.browser.ie,baidu.browser.firefox,baidu.browser.safari,baidu.browser.chrome 
     */
        baidu.browser.opera = + RegExp['\x241'];
    }

    /**
     * 判断是否为webkit内核
     * @property isWebkit 
     * @grammar baidu.browser.isWebkit
     * @meta standard
     * @see baidu.browser.isGecko
     */
    baidu.browser.isWebkit = /webkit/i.test(navigator.userAgent);

    /**
     * 判断是否为gecko内核
     * @property isGecko 
     * @grammar baidu.browser.isGecko
     * @meta standard
     * @see baidu.browser.isWebkit
     */
    baidu.browser.isGecko = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent);

    /**
     * 判断是否严格标准的渲染模式
     * @property isStrict 
     * @grammar baidu.browser.isStrict
     * @meta standard
     */
    baidu.browser.isStrict = document.compatMode == "CSS1Compat";

    /**
     * 获取目标元素相对于整个文档左上角的位置
     * @name baidu.dom.getPosition
     * @function
     * @grammar baidu.dom.getPosition(element)
     * @param {HTMLElement|string} element 目标元素或目标元素的id
     * @meta standard
     *             
     * @returns {Object} 目标元素的位置，键值为top和left的Object。
     */
    baidu.dom.getPosition = function (element) {
        element = baidu.dom.g(element);
        var doc = baidu.dom.getDocument(element), 
            browser = baidu.browser,
            getStyle = baidu.dom.getStyle,
        // Gecko 1.9版本以下用getBoxObjectFor计算位置
        // 但是某些情况下是有bug的
        // 对于这些有bug的情况
        // 使用递归查找的方式
            BUGGY_GECKO_BOX_OBJECT = browser.isGecko > 0 && 
                                        doc.getBoxObjectFor &&
                                        getStyle(element, 'position') == 'absolute' &&
                                        (element.style.top === '' || element.style.left === ''),
            pos = {"left":0,"top":0},
            viewport = (browser.ie && !browser.isStrict) ? doc.body : doc.documentElement,
            parent,
            box;

        if(element == viewport){
            return pos;
        }

        if(element.getBoundingClientRect){ // IE and Gecko 1.9+
    
            //当HTML或者BODY有border width时, 原生的getBoundingClientRect返回值是不符合预期的
            //考虑到通常情况下 HTML和BODY的border只会设成0px,所以忽略该问题.
            box = element.getBoundingClientRect();

            pos.left = Math.floor(box.left) + Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);
            pos.top  = Math.floor(box.top)  + Math.max(doc.documentElement.scrollTop,  doc.body.scrollTop);
    
            // IE会给HTML元素添加一个border，默认是medium（2px）
            // 但是在IE 6 7 的怪异模式下，可以被html { border: 0; } 这条css规则覆盖
            // 在IE7的标准模式下，border永远是2px，这个值通过clientLeft 和 clientTop取得
            // 但是。。。在IE 6 7的怪异模式，如果用户使用css覆盖了默认的medium
            // clientTop和clientLeft不会更新
            pos.left -= doc.documentElement.clientLeft;
            pos.top  -= doc.documentElement.clientTop;
    
            var htmlDom = doc.body,
                // 在这里，不使用element.style.borderLeftWidth，只有computedStyle是可信的
                htmlBorderLeftWidth = parseInt(getStyle(htmlDom, 'borderLeftWidth')),
                htmlBorderTopWidth = parseInt(getStyle(htmlDom, 'borderTopWidth'));
            if(browser.ie && !browser.isStrict){
                pos.left -= isNaN(htmlBorderLeftWidth) ? 2 : htmlBorderLeftWidth;
                pos.top  -= isNaN(htmlBorderTopWidth) ? 2 : htmlBorderTopWidth;
            }
        } else { 
            // safari/opera/firefox
            parent = element;

            do {
                pos.left += parent.offsetLeft;
                pos.top  += parent.offsetTop;
    
                // safari里面，如果遍历到了一个fixed的元素，后面的offset都不准了
                if (browser.isWebkit > 0 && getStyle(parent, 'position') == 'fixed') {
                    pos.left += doc.body.scrollLeft;
                    pos.top  += doc.body.scrollTop;
                    break;
                }
        
                parent = parent.offsetParent;
            } while (parent && parent != element);

            // 对body offsetTop的修正
            if(browser.opera > 0 || (browser.isWebkit > 0 && getStyle(element, 'position') == 'absolute')){
                pos.top  -= doc.body.offsetTop;
            }

            // 计算除了body的scroll
            parent = element.offsetParent;
            while (parent && parent != doc.body) {
                pos.left -= parent.scrollLeft;
                // see https://bugs.opera.com/show_bug.cgi?id=249965
                if (!browser.opera || parent.tagName != 'TR') {
                    pos.top -= parent.scrollTop;
                }
                parent = parent.offsetParent;
            }
        }

        return pos;
    };

    /**
     * @ignore
     * @namespace baidu.event 屏蔽浏览器差异性的事件封装。
     * @property target 	事件的触发元素
     * @property pageX 		鼠标事件的鼠标x坐标
     * @property pageY 		鼠标事件的鼠标y坐标
     * @property keyCode 	键盘事件的键值
     */
    baidu.event = baidu.event || {};

    /**
     * 事件监听器的存储表
     * @private
     * @meta standard
     */
    baidu.event._listeners = baidu.event._listeners || [];

    /**
     * 为目标元素添加事件监听器
     * @name baidu.event.on
     * @function
     * @grammar baidu.event.on(element, type, listener)
     * @param {HTMLElement|string|window} element 目标元素或目标元素id
     * @param {string} type 事件类型
     * @param {Function} listener 需要添加的监听器
     * @remark
     * 
    1. 不支持跨浏览器的鼠标滚轮事件监听器添加<br>
    2. 改方法不为监听器灌入事件对象，以防止跨iframe事件挂载的事件对象获取失败

        * @shortcut on
        * @meta standard
        * @see baidu.event.un
        *             
        * @returns {HTMLElement|window} 目标元素
        */
    baidu.event.on = function (element, type, listener) {
        type = type.replace(/^on/i, '');
        element = baidu.dom._g(element);

        var realListener = function (ev) {
                // 1. 这里不支持EventArgument,  原因是跨frame的事件挂载
                // 2. element是为了修正this
                listener.call(element, ev);
            },
            lis = baidu.event._listeners,
            filter = baidu.event._eventFilter,
            afterFilter,
            realType = type;
        type = type.toLowerCase();
        // filter过滤
        if(filter && filter[type]){
            afterFilter = filter[type](element, type, realListener);
            realType = afterFilter.type;
            realListener = afterFilter.listener;
        }

        // 事件监听器挂载
        if (element.addEventListener) {
            element.addEventListener(realType, realListener, false);
        } else if (element.attachEvent) {
            element.attachEvent('on' + realType, realListener);
        }

        // 将监听器存储到数组中
        lis[lis.length] = [element, type, listener, realListener, realType];
        return element;
    };

    // 声明快捷方法
    baidu.on = baidu.event.on;

    /**
     * 返回一个当前页面的唯一标识字符串。
     * @name baidu.lang.guid
     * @function
     * @grammar baidu.lang.guid()
     * @version 1.1.1
     * @meta standard
     *             
     * @returns {String} 当前页面的唯一标识字符串
     */

    (function(){
        //不直接使用window，可以提高3倍左右性能
        var guid = context[baidu.guid];

        baidu.lang.guid = function() {
            return "TANGRAM__" + (guid._counter ++).toString(36);
        };

        guid._counter = guid._counter || 1;
    })();

    /**
     * 所有类的实例的容器
     * key为每个实例的guid
     * @meta standard
     */

    context[baidu.guid]._instances = context[baidu.guid]._instances || {};

    /**
     * 判断目标参数是否为function或Function实例
     * @name baidu.lang.isFunction
     * @function
     * @grammar baidu.lang.isFunction(source)
     * @param {Any} source 目标参数
     * @version 1.2
     * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate
     * @meta standard
     * @returns {boolean} 类型判断结果
     */
    baidu.lang.isFunction = function (source) {
        // chrome下,'function' == typeof /a/ 为true.
        return '[object Function]' == Object.prototype.toString.call(source);
    };

    /**
     *    
     * @ignore
     * @class  Tangram继承机制提供的一个基类，用户可以通过继承baidu.lang.Class来获取它的属性及方法。
     * @name 	baidu.lang.Class
     * @grammar baidu.lang.Class(guid)
     * @param 	{string}	guid	对象的唯一标识
     * @meta standard
     * @remark baidu.lang.Class和它的子类的实例均包含一个全局唯一的标识guid。guid是在构造函数中生成的，因此，继承自baidu.lang.Class的类应该直接或者间接调用它的构造函数。<br>baidu.lang.Class的构造函数中产生guid的方式可以保证guid的唯一性，及每个实例都有一个全局唯一的guid。
     * @meta standard
     * @see baidu.lang.inherits,baidu.lang.Event
     */
    baidu.lang.Class = function(guid) {
        this.guid = guid || baidu.lang.guid();
        context[baidu.guid]._instances[this.guid] = this;
    };
    context[baidu.guid]._instances = context[baidu.guid]._instances || {};

    /**
     * 释放对象所持有的资源，主要是自定义事件。
     * @name dispose
     * @grammar obj.dispose()
     */
    baidu.lang.Class.prototype.dispose = function(){
        delete context[baidu.guid]._instances[this.guid];

        for(var property in this){
            if (!baidu.lang.isFunction(this[property])) {
                delete this[property];
            }
        }
        this.disposed = true;
    };

    /**
     * 重载了默认的toString方法，使得返回信息更加准确一些。
     * @return {string} 对象的String表示形式
     */
    baidu.lang.Class.prototype.toString = function(){
        return "[object " + (this._className || "Object" ) + "]";
    };

    /**
     * @ignore
     * @class   自定义的事件对象。
     * @name 	baidu.lang.Event
     * @grammar baidu.lang.Event(type[, target])
     * @param 	{string} type	 事件类型名称。为了方便区分事件和一个普通的方法，事件类型名称必须以"on"(小写)开头。
     * @param 	{Object} [target]触发事件的对象
     * @meta standard
     * @remark 引入该模块，会自动为Class引入3个事件扩展方法：addEventListener、removeEventListener和dispatchEvent。
     * @meta standard
     * @see baidu.lang.Class
     */
    baidu.lang.Event = function (type, target) {
        this.type = type;
        this.returnValue = true;
        this.target = target || null;
        this.currentTarget = null;
    };

    /**
     * 注册对象的事件监听器。引入baidu.lang.Event后，Class的子类实例才会获得该方法。
     * @grammar obj.addEventListener(type, handler[, key])
     * @param 	{string}   type         自定义事件的名称
     * @param 	{Function} handler      自定义事件被触发时应该调用的回调函数
     * @param 	{string}   [key]		为事件监听函数指定的名称，可在移除时使用。如果不提供，方法会默认为它生成一个全局唯一的key。
     * @remark 	事件类型区分大小写。如果自定义事件名称不是以小写"on"开头，该方法会给它加上"on"再进行判断，即"click"和"onclick"会被认为是同一种事件。 
     */
    baidu.lang.Class.prototype.addEventListener = function (type, handler, key) {
        if (!baidu.lang.isFunction(handler)) {
            return;
        }

        !this.__listeners && (this.__listeners = {});

        var t = this.__listeners, id;
        if (typeof key == "string" && key) {
            if (/[^\w\-]/.test(key)) {
                throw("nonstandard key:" + key);
            } else {
                handler.hashCode = key; 
                id = key;
            }
        }
        type.indexOf("on") != 0 && (type = "on" + type);

        typeof t[type] != "object" && (t[type] = {});
        id = id || baidu.lang.guid();
        handler.hashCode = id;
        t[type][id] = handler;
    };

    /**
     * 移除对象的事件监听器。引入baidu.lang.Event后，Class的子类实例才会获得该方法。
     * @grammar obj.removeEventListener(type, handler)
     * @param {string}   type     事件类型
     * @param {Function|string} handler  要移除的事件监听函数或者监听函数的key
     * @remark 	如果第二个参数handler没有被绑定到对应的自定义事件中，什么也不做。
     */
    baidu.lang.Class.prototype.removeEventListener = function (type, handler) {
        if (typeof handler != "undefined") {
            if ( (baidu.lang.isFunction(handler) && ! (handler = handler.hashCode))
                || (! baidu.lang.isString(handler))
            ){
                return;
            }
        }

        !this.__listeners && (this.__listeners = {});

        type.indexOf("on") != 0 && (type = "on" + type);

        var t = this.__listeners;
        if (!t[type]) {
            return;
        }
        if (typeof handler != "undefined") {
            t[type][handler] && delete t[type][handler];
        } else {
            for(var guid in t[type]){
                delete t[type][guid];
            }
        }
    };

    /**
     * 派发自定义事件，使得绑定到自定义事件上面的函数都会被执行。引入baidu.lang.Event后，Class的子类实例才会获得该方法。
     * @grammar obj.dispatchEvent(event, options)
     * @param {baidu.lang.Event|String} event 	Event对象，或事件名称(1.1.1起支持)
     * @param {Object} 					options 扩展参数,所含属性键值会扩展到Event对象上(1.2起支持)
     * @remark 处理会调用通过addEventListenr绑定的自定义事件回调函数之外，还会调用直接绑定到对象上面的自定义事件。例如：<br>
    myobj.onMyEvent = function(){}<br>
    myobj.addEventListener("onMyEvent", function(){});
        */
    baidu.lang.Class.prototype.dispatchEvent = function (event, options) {
        if (baidu.lang.isString(event)) {
            event = new baidu.lang.Event(event);
        }
        !this.__listeners && (this.__listeners = {});

        // 20100603 添加本方法的第二个参数，将 options extend到event中去传递
        options = options || {};
        for (var i in options) {
            event[i] = options[i];
        }

        var i, t = this.__listeners, p = event.type;
        event.target = event.target || this;
        event.currentTarget = this;

        p.indexOf("on") != 0 && (p = "on" + p);

        baidu.lang.isFunction(this[p]) && this[p].apply(this, arguments);

        if (typeof t[p] == "object") {
            for (i in t[p]) {
                t[p][i].apply(this, arguments);
            }
        }
        return event.returnValue;
    };


    baidu.lang.inherits = function (subClass, superClass, className) {
        var key, proto,
            selfProps = subClass.prototype,
            clazz = new Function();

        clazz.prototype = superClass.prototype;
        proto = subClass.prototype = new clazz();
        for (key in selfProps) {
            proto[key] = selfProps[key];
        }
        subClass.prototype.constructor = subClass;
        subClass.superClass = superClass.prototype;

        // 类名标识，兼容Class的toString，基本没用
        if ("string" == typeof className) {
            proto._className = className;
        }
    };
    // 声明快捷方法
    baidu.inherits = baidu.lang.inherits;


    /**
    
     * 图片的路径

     * @private
     * @type {String}
    
     */
    var _IMAGE_PATH = 'http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m';

    /**
    
     * 图片的后缀名

      * @private
     * @type {String}
    
     */
    var _IMAGE_EXTENSION  = 'png';

    /**
     *@exports TextIconOverlay as BMapLib.TextIconOverlay
     */
    
    /**
    * TextIconOverlay
    * @class 此类表示地图上的一个覆盖物，该覆盖物由文字和图标组成，从Overlay继承。文字通常是数字（0-9）或字母（A-Z ），而文字与图标之间有一定的映射关系。
    *该覆盖物适用于以下类似的场景：需要在地图上添加一系列覆盖物，这些覆盖物之间用不同的图标和文字来区分，文字可能表示了该覆盖物的某一属性值，根据该文字和一定的映射关系，自动匹配相应颜色和大小的图标。
    *
    *@constructor
    *@param {Point} position 表示一个经纬度坐标位置。
    *@param {String} text 表示该覆盖物显示的文字信息。
    *@param {Json Object} options 可选参数，可选项包括：<br />
    *"<b>styles</b>":{Array<IconStyle>} 一组图标风格。单个图表风格包括以下几个属性：<br />
    *   url	{String}	 图片的url地址。(必选)<br />
    *   size {Size}	图片的大小。（必选）<br />
    *   anchor {Size} 图标定位在地图上的位置相对于图标左上角的偏移值，默认偏移值为图标的中心位置。（可选）<br />
    *   offset {Size} 图片相对于可视区域的偏移值，此功能的作用等同于CSS中的background-position属性。（可选）<br />
    *   textSize {Number} 文字的大小。（可选，默认10）<br />
    *   textColor {String} 文字的颜色。（可选，默认black）<br />
    */
    var TextIconOverlay = function(position, text, options){
        try {
            BMap;
        } catch (e) {
            throw Error('Baidu Map JS API is not ready yet!');
        }
        T.lang.inherits(TextIconOverlay, BMap.Overlay, "TextIconOverlay");
        this._position = position;
        this._text = text;
        this._options = options || {};
        this._styles = this._options['styles'] || [];
        (!this._styles.length) && this._setupDefaultStyles();                  
    };


    TextIconOverlay.prototype._setupDefaultStyles = function(){  
        var sizes = [53, 56, 66, 78, 90];
        for(var i = 0, size; size = sizes[i]; i++){
            this._styles.push({
                url:_IMAGE_PATH + i + '.' + _IMAGE_EXTENSION,
                size: new BMap.Size(size, size)
            });
        }//for循环的简洁写法
    };

    /**
    *继承Overlay的intialize方法，自定义覆盖物时必须。
    *@param {Map} map BMap.Map的实例化对象。
    *@return {HTMLElement} 返回覆盖物对应的HTML元素。
    */
    TextIconOverlay.prototype.initialize = function(map){
        this._map = map;
    
        this._domElement = document.createElement('div');     
        this._updateCss();    
        this._updateText();
        this._updatePosition(); 
        
        this._bind();

        this._map.getPanes().markerMouseTarget.appendChild(this._domElement);
        return this._domElement;   
    };

    /**
    *继承Overlay的draw方法，自定义覆盖物时必须。
    *@return 无返回值。
    */
    TextIconOverlay.prototype.draw = function(){
        this._map && this._updatePosition();
    };
    
    /**
    *获取该覆盖物上的文字。
    *@return {String} 该覆盖物上的文字。
    */
    TextIconOverlay.prototype.getText = function(){
        return this._text;
    };

    /**
    *设置该覆盖物上的文字。
    *@param {String} text 要设置的文字，通常是字母A-Z或数字0-9。
    *@return 无返回值。
    */
    TextIconOverlay.prototype.setText = function(text){
        if(text && (!this._text || (this._text.toString() != text.toString()))){
            this._text = text;
            this._updateText();
            this._updateCss();
            this._updatePosition(); 
        }
    };

    /**
    *获取该覆盖物的位置。
    *@return {Point} 该覆盖物的经纬度坐标。
    */
    TextIconOverlay.prototype.getPosition = function () {
        return this._position;
    };
   
    /**
    *设置该覆盖物的位置。
    *@param {Point}  position 要设置的经纬度坐标。
    *@return 无返回值。
    */
    TextIconOverlay.prototype.setPosition = function (position) {
        if(position && (!this._position || !this._position.equals(position))){
            this._position = position;  
            this._updatePosition();
        }
    };

    /**
    *由文字信息获取风格数组的对应索引值。
    *内部默认的对应函数为文字转换为数字除以10的结果，比如文字8返回索引0，文字25返回索引2.
    *如果需要自定义映射关系，请覆盖该函数。
    *@param {String} text  文字。
    *@param {Array<IconStyle>}  styles 一组图标风格。
    *@return {Number} 对应的索引值。
    */
    TextIconOverlay.prototype.getStyleByText = function(text, styles){
        var count = parseInt(text);
        var index = parseInt(count / 10);
        index = Math.max(0, index);
        index = Math.min(index, styles.length - 1);
        return styles[index]; 
    };

    /**
    *更新相应的CSS。
    *@return 无返回值。
    */
    TextIconOverlay.prototype._updateCss = function(){
        if (!this._domElement) {
            return
        }
        var style = this.getStyleByText(this._text, this._styles);
        this._domElement.style.cssText = this._buildCssText(style);
    };

    /**
    *更新覆盖物的显示文字。
    *@return 无返回值。
    */
    TextIconOverlay.prototype._updateText = function(){
        if (this._domElement) {
            this._domElement.innerHTML = this._text;
        }
    };

    /**
    *调整覆盖物在地图上的位置更新覆盖物的显示文字。
    *@return 无返回值。
    */
    TextIconOverlay.prototype._updatePosition = function(){
        if (this._domElement && this._position) {
            var style = this._domElement.style;
            var pixelPosition= this._map.pointToOverlayPixel(this._position); 
            pixelPosition.x -= Math.ceil(parseInt(style.width) / 2);
            pixelPosition.y -= Math.ceil(parseInt(style.height) / 2);       
            style.left = pixelPosition.x + "px";
            style.top = pixelPosition.y + "px";
        }
    };
    
    /**
    * 为该覆盖物的HTML元素构建CSS
    * @param {IconStyle}  一个图标的风格。
    * @return {String} 构建完成的CSSTEXT。
    */
    TextIconOverlay.prototype._buildCssText = function(style) {    
        //根据style来确定一些默认值
        var url = style['url'];
        var size = style['size'];
        var anchor = style['anchor'];
        var offset = style['offset'];
        var textColor = style['textColor'] || 'black';
        var textSize = style['textSize'] || 10;

        var csstext = [];
        if (T.browser["ie"] < 7) {
            csstext.push('filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(' +
                'sizingMethod=scale,src="' + url + '");');
        } else {
            csstext.push('background-image:url(' + url + ');');
            var backgroundPosition = '0 0';
            (offset instanceof BMap.Size) && (backgroundPosition = offset.width + 'px' + ' ' + offset.height + 'px');          
            csstext.push('background-position:' + backgroundPosition + ';');
        }

        if (size instanceof BMap.Size){
            if (anchor instanceof BMap.Size) {
                if (anchor.height > 0 && anchor.height < size.height) {
                      csstext.push('height:' + (size.height - anchor.height) + 'px; padding-top:' + anchor.height + 'px;');
                }
                if(anchor.width > 0 && anchor.width < size.width){
                    csstext.push('width:' + (size.width - anchor.width) + 'px; padding-left:' + anchor.width + 'px;');                
                }
            } else {
                csstext.push('height:' + size.height + 'px; line-height:' + size.height + 'px;');
                csstext.push('width:' + size.width + 'px; text-align:center;');
            }
        }
   
        csstext.push('cursor:pointer; color:' + textColor + '; position:absolute; font-size:' +
            textSize + 'px; font-family:Arial,sans-serif; font-weight:bold');
        return csstext.join('');
    };


    /**
    
     * 当鼠标点击该覆盖物时会触发该事件

     * @name TextIconOverlay#click

     * @event

     * @param {Event Object} e 回调函数会返回event参数，包括以下返回值：
    
     * <br />"<b>type</b> : {String} 事件类型

     * <br />"<b>target</b>：{BMapLib.TextIconOverlay} 事件目标

     *

     */

    /**

     * 当鼠标进入该覆盖物区域时会触发该事件

     * @name TextIconOverlay#mouseover

     * @event
     * @param {Event Object} e 回调函数会返回event参数，包括以下返回值：
    
     * <br />"<b>type</b> : {String} 事件类型

     * <br />"<b>target</b>：{BMapLib.TextIconOverlay} 事件目标

     * <br />"<b>point</b> : {BMap.Point} 最新添加上的节点BMap.Point对象

     * <br />"<b>pixel</b>：{BMap.pixel} 最新添加上的节点BMap.Pixel对象

     *

     * @example <b>参考示例：</b><br />

     * myTextIconOverlay.addEventListener("mouseover", function(e) {  alert(e.point);  });

     */

    /**

     * 当鼠标离开该覆盖物区域时会触发该事件

     * @name TextIconOverlay#mouseout

     * @event

     * @param {Event Object} e 回调函数会返回event参数，包括以下返回值：

     * <br />"<b>type</b> : {String} 事件类型

     * <br />"<b>target</b>：{BMapLib.TextIconOverlay} 事件目标

     * <br />"<b>point</b> : {BMap.Point} 最新添加上的节点BMap.Point对象

     * <br />"<b>pixel</b>：{BMap.pixel} 最新添加上的节点BMap.Pixel对象

     *

     * @example <b>参考示例：</b><br />

     * myTextIconOverlay.addEventListener("mouseout", function(e) {  alert(e.point);  });

     */


    /**
    * 为该覆盖物绑定一系列事件
    * 当前支持click mouseover mouseout
    * @return 无返回值。
    */
    TextIconOverlay.prototype._bind = function(){
        if (!this._domElement){
            return;
        }

        var me = this;
        var map = this._map;

        var BaseEvent = T.lang.Event;
        function eventExtend(e, be){
            var elem = e.srcElement || e.target;
            var x = e.clientX || e.pageX;
            var y = e.clientY || e.pageY;
            if (e && be && x && y && elem){
                var offset = T.dom.getPosition(map.getContainer());
                be.pixel = new BMap.Pixel(x - offset.left, y - offset.top);
                be.point = map.pixelToPoint(be.pixel);
            }
            return be;
        }//给事件参数增加pixel和point两个值

        T.event.on(this._domElement,"mouseover", function(e){
            me.dispatchEvent(eventExtend(e, new BaseEvent("onmouseover")));
        });
        T.event.on(this._domElement,"mouseout", function(e){
            me.dispatchEvent(eventExtend(e, new BaseEvent("onmouseout")));
        });
        T.event.on(this._domElement,"click", function(e){
            me.dispatchEvent(eventExtend(e, new BaseEvent("onclick")));
        });
    };

    return TextIconOverlay;
});
});

var TextIconOverlay = (index$1 && typeof index$1 === 'object' && 'default' in index$1 ? index$1['default'] : index$1);

/**
 * 获取一个扩展的视图范围，把上下左右都扩大一样的像素值。
 * @param {Map} map BMap.Map的实例化对象
 * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象
 * @param {Number} gridSize 要扩大的像素值
 *
 * @return {BMap.Bounds} 返回扩大后的视图范围。
 */
var getExtendedBounds = function(map, bounds, gridSize){
    bounds = cutBoundsInRange(bounds);
    var pixelNE = map.pointToPixel(bounds.getNorthEast());
    var pixelSW = map.pointToPixel(bounds.getSouthWest()); 
    pixelNE.x += gridSize;
    pixelNE.y -= gridSize;
    pixelSW.x -= gridSize;
    pixelSW.y += gridSize;
    var newNE = map.pixelToPoint(pixelNE);
    var newSW = map.pixelToPoint(pixelSW);
    return new BMap.Bounds(newSW, newNE);
};

/**
 * 按照百度地图支持的世界范围对bounds进行边界处理
 * @param {BMap.Bounds} bounds BMap.Bounds的实例化对象
 *
 * @return {BMap.Bounds} 返回不越界的视图范围
 */
var cutBoundsInRange = function (bounds) {
    var maxX = getRange(bounds.getNorthEast().lng, -180, 180);
    var minX = getRange(bounds.getSouthWest().lng, -180, 180);
    var maxY = getRange(bounds.getNorthEast().lat, -74, 74);
    var minY = getRange(bounds.getSouthWest().lat, -74, 74);
    return new BMap.Bounds(new BMap.Point(minX, minY), new BMap.Point(maxX, maxY));
}; 

/**
 * 对单个值进行边界处理。
 * @param {Number} i 要处理的数值
 * @param {Number} min 下边界值
 * @param {Number} max 上边界值
 * 
 * @return {Number} 返回不越界的数值
 */
var getRange = function (i, mix, max) {
    mix && (i = Math.max(i, mix));
    max && (i = Math.min(i, max));
    return i;
};

/**
 * 判断给定的对象是否为数组
 * @param {Object} source 要测试的对象
 *
 * @return {Boolean} 如果是数组返回true，否则返回false
 */
var isArray = function (source) {
    return '[object Array]' === Object.prototype.toString.call(source);
};

/**
 * 返回item在source中的索引位置
 * @param {Object} item 要测试的对象
 * @param {Array} source 数组
 *
 * @return {Number} 如果在数组内，返回索引，否则返回-1
 */
var indexOf = function(item, source){
    var index = -1;
    if(isArray(source)){
        if (source.indexOf) {
            index = source.indexOf(item);
        } else {
            for (var i = 0, m; m = source[i]; i++) {
                if (m === item) {
                    index = i;
                    break;
                }
            }
        }
    }        
    return index;
};

/**
 *@exports MarkerClusterer as BMapLib.MarkerClusterer
 */

    /**
     * MarkerClusterer
     * @class 用来解决加载大量点要素到地图上产生覆盖现象的问题，并提高性能
     * @constructor
     * @param {Map} map 地图的一个实例。
     * @param {Json Object} options 可选参数，可选项包括：<br />
     *    markers {Array<Marker>} 要聚合的标记数组<br />
     *    girdSize {Number} 聚合计算时网格的像素大小，默认60<br />
     *    maxZoom {Number} 最大的聚合级别，大于该级别就不进行相应的聚合<br />
     *    minClusterSize {Number} 最小的聚合数量，小于该数量的不能成为一个聚合，默认为2<br />
     *    isAverangeCenter {Boolean} 聚合点的落脚位置是否是所有聚合在内点的平均值，默认为否，落脚在聚合内的第一个点<br />
     *    styles {Array<IconStyle>} 自定义聚合后的图标风格，请参考TextIconOverlay类<br />
     */
var MarkerClusterer  = function(map, options){
    try {
        BMap;
    } catch (e) {
        throw Error('Baidu Map JS API is not ready yet!');
    }
    if (!map){
        return;
    }
    this._map = map;
    this._markers = [];
    this._clusters = [];
    
    var opts = options || {};
    this._gridSize = opts["gridSize"] || 60;
    this._maxZoom = opts["maxZoom"] || 18;
    this._minClusterSize = opts["minClusterSize"] || 2;           
    this._isAverageCenter = false;
    if (opts['isAverageCenter'] != undefined) {
        this._isAverageCenter = opts['isAverageCenter'];
    }    
    this._styles = opts["styles"] || [];

    var that = this;
    this._map.addEventListener("zoomend",function(){
        that._redraw();     
    });

    this._map.addEventListener("moveend",function(){
        that._redraw();     
    });

    var mkrs = opts["markers"];
    isArray(mkrs) && this.addMarkers(mkrs);
};

/**
 * 添加要聚合的标记数组。
 * @param {Array<Marker>} markers 要聚合的标记数组
 *
 * @return 无返回值。
 */
MarkerClusterer.prototype.addMarkers = function(markers){
    if (!markers.length) {
        return
    }
    for(var i = 0, len = markers.length; i <len ; i++){
        this._pushMarkerTo(markers[i]);
    }
    this._createClusters();   
};

/**
 * 把一个标记添加到要聚合的标记数组中
 * @param {BMap.Marker} marker 要添加的标记
 *
 * @return 无返回值。
 */
MarkerClusterer.prototype._pushMarkerTo = function(marker){
    var index = indexOf(marker, this._markers);
    if(index === -1){
        marker.isInCluster = false;
        this._markers.push(marker);//Marker拖放后enableDragging不做变化，忽略
    }
};

/**
 * 添加一个聚合的标记。
 * @param {BMap.Marker} marker 要聚合的单个标记。
 * @return 无返回值。
 */
MarkerClusterer.prototype.addMarker = function(marker) {
    this._pushMarkerTo(marker);
    this._createClusters();
};

/**
 * 根据所给定的标记，创建聚合点
 * @return 无返回值
 */
MarkerClusterer.prototype._createClusters = function(){
    var mapBounds = this._map.getBounds();
    if (!mapBounds.getCenter()) {
        return
    }
    var extendedBounds = getExtendedBounds(this._map, mapBounds, this._gridSize);
    for(var i = 0, marker; marker = this._markers[i]; i++){
        if(!marker.isInCluster && extendedBounds.containsPoint(marker.getPosition()) ){ 
            this._addToClosestCluster(marker);
        }
    }   
};

/**
 * 根据标记的位置，把它添加到最近的聚合中
 * @param {BMap.Marker} marker 要进行聚合的单个标记
 *
 * @return 无返回值。
 */
MarkerClusterer.prototype._addToClosestCluster = function (marker){
    var distance = 4000000;
    var clusterToAddTo = null;
    var position = marker.getPosition();
    for(var i = 0, cluster; cluster = this._clusters[i]; i++){
        var center = cluster.getCenter();
        if(center){
            var d = this._map.getDistance(center, marker.getPosition());
            if(d < distance){
                distance = d;
                clusterToAddTo = cluster;
            }
        }
    }

    if (clusterToAddTo && clusterToAddTo.isMarkerInClusterBounds(marker)){
        clusterToAddTo.addMarker(marker);
    } else {
        var cluster = new Cluster(this);
        cluster.addMarker(marker);            
        this._clusters.push(cluster);
    }    
};

/**
 * 清除上一次的聚合的结果
 * @return 无返回值。
 */
MarkerClusterer.prototype._clearLastClusters = function(){
    for(var i = 0, cluster; cluster = this._clusters[i]; i++){            
        cluster.remove();
    }
    this._clusters = [];//置空Cluster数组
    this._removeMarkersFromCluster();//把Marker的cluster标记设为false
};

/**
 * 清除某个聚合中的所有标记
 * @return 无返回值
 */
MarkerClusterer.prototype._removeMarkersFromCluster = function(){
    for(var i = 0, marker; marker = this._markers[i]; i++){
        marker.isInCluster = false;
    }
};

/**
 * 把所有的标记从地图上清除
 * @return 无返回值
 */
MarkerClusterer.prototype._removeMarkersFromMap = function(){
    for(var i = 0, marker; marker = this._markers[i]; i++){
        marker.isInCluster = false;
        var label = marker.getLabel();
        this._map.removeOverlay(marker);
        marker.setLabel(label);
    }
};

/**
 * 删除单个标记
 * @param {BMap.Marker} marker 需要被删除的marker
 *
 * @return {Boolean} 删除成功返回true，否则返回false
 */
MarkerClusterer.prototype._removeMarker = function(marker) {
    var index = indexOf(marker, this._markers);
    if (index === -1) {
        return false;
    }
    this._map.removeOverlay(marker);
    this._markers.splice(index, 1);
    return true;
};

/**
 * 删除单个标记
 * @param {BMap.Marker} marker 需要被删除的marker
 *
 * @return {Boolean} 删除成功返回true，否则返回false
 */
MarkerClusterer.prototype.removeMarker = function(marker) {
    var success = this._removeMarker(marker);
    if (success) {
        this._clearLastClusters();
        this._createClusters();
    }
    return success;
};

/**
 * 删除一组标记
 * @param {Array<BMap.Marker>} markers 需要被删除的marker数组
 *
 * @return {Boolean} 删除成功返回true，否则返回false
 */
MarkerClusterer.prototype.removeMarkers = function(markers) {
    var success = false;
    for (var i = 0; i < markers.length; i++) {
        var r = this._removeMarker(markers[i]);
        success = success || r; 
    }

    if (success) {
        this._clearLastClusters();
        this._createClusters();
    }
    return success;
};

/**
 * 从地图上彻底清除所有的标记
 * @return 无返回值
 */
MarkerClusterer.prototype.clearMarkers = function() {
    this._clearLastClusters();
    this._removeMarkersFromMap();
    this._markers = [];
};

/**
 * 重新生成，比如改变了属性等
 * @return 无返回值
 */
MarkerClusterer.prototype._redraw = function () {
    this._clearLastClusters();
    this._createClusters();
};

/**
 * 获取网格大小
 * @return {Number} 网格大小
 */
MarkerClusterer.prototype.getGridSize = function() {
    return this._gridSize;
};

/**
 * 设置网格大小
 * @param {Number} size 网格大小
 * @return 无返回值
 */
MarkerClusterer.prototype.setGridSize = function(size) {
    this._gridSize = size;
    this._redraw();
};

/**
 * 获取聚合的最大缩放级别。
 * @return {Number} 聚合的最大缩放级别。
 */
MarkerClusterer.prototype.getMaxZoom = function() {
    return this._maxZoom;       
};

/**
 * 设置聚合的最大缩放级别
 * @param {Number} maxZoom 聚合的最大缩放级别
 * @return 无返回值
 */
MarkerClusterer.prototype.setMaxZoom = function(maxZoom) {
    this._maxZoom = maxZoom;
    this._redraw();
};

/**
 * 获取聚合的样式风格集合
 * @return {Array<IconStyle>} 聚合的样式风格集合
 */
MarkerClusterer.prototype.getStyles = function() {
    return this._styles;
};

/**
 * 设置聚合的样式风格集合
 * @param {Array<IconStyle>} styles 样式风格数组
 * @return 无返回值
 */
MarkerClusterer.prototype.setStyles = function(styles) {
    this._styles = styles;
    this._redraw();
};

/**
 * 获取单个聚合的最小数量。
 * @return {Number} 单个聚合的最小数量。
 */
MarkerClusterer.prototype.getMinClusterSize = function() {
    return this._minClusterSize;
};

/**
 * 设置单个聚合的最小数量。
 * @param {Number} size 单个聚合的最小数量。
 * @return 无返回值。
 */
MarkerClusterer.prototype.setMinClusterSize = function(size) {
    this._minClusterSize = size;
    this._redraw();
};

/**
 * 获取单个聚合的落脚点是否是聚合内所有标记的平均中心。
 * @return {Boolean} true或false。
 */
MarkerClusterer.prototype.isAverageCenter = function() {
    return this._isAverageCenter;
};

/**
 * 获取聚合的Map实例。
 * @return {Map} Map的示例。
 */
MarkerClusterer.prototype.getMap = function() {
    return this._map;
};

/**
 * 获取所有的标记数组。
 * @return {Array<Marker>} 标记数组。
 */
MarkerClusterer.prototype.getMarkers = function() {
    return this._markers;
};

/**
 * 获取聚合的总数量。
 * @return {Number} 聚合的总数量。
 */
MarkerClusterer.prototype.getClustersCount = function() {
    var count = 0;
    for(var i = 0, cluster; cluster = this._clusters[i]; i++){
        cluster.isReal() && count++;     
    }
    return count;
};

/**
 * @ignore
 * Cluster
 * @class 表示一个聚合对象，该聚合，包含有N个标记，这N个标记组成的范围，并有予以显示在Map上的TextIconOverlay等。
 * @constructor
 * @param {MarkerClusterer} markerClusterer 一个标记聚合器示例。
 */
function Cluster(markerClusterer){
    this._markerClusterer = markerClusterer;
    this._map = markerClusterer.getMap();
    this._minClusterSize = markerClusterer.getMinClusterSize();
    this._isAverageCenter = markerClusterer.isAverageCenter();
    this._center = null;//落脚位置
    this._markers = [];//这个Cluster中所包含的markers
    this._gridBounds = null;//以中心点为准，向四边扩大gridSize个像素的范围，也即网格范围
    this._isReal = false; //真的是个聚合

    this._clusterMarker = new TextIconOverlay(this._center, this._markers.length, {"styles":this._markerClusterer.getStyles()});
    //this._map.addOverlay(this._clusterMarker);
}

/**
 * 向该聚合添加一个标记。
 * @param {Marker} marker 要添加的标记。
 * @return 无返回值。
 */
Cluster.prototype.addMarker = function(marker){
    if(this.isMarkerInCluster(marker)){
        return false;
    }//也可用marker.isInCluster判断,外面判断OK，这里基本不会命中

    if (!this._center){
        this._center = marker.getPosition();
        this.updateGridBounds();//
    } else {
        if(this._isAverageCenter){
            var l = this._markers.length + 1;
            var lat = (this._center.lat * (l - 1) + marker.getPosition().lat) / l;
            var lng = (this._center.lng * (l - 1) + marker.getPosition().lng) / l;
            this._center = new BMap.Point(lng, lat);
            this.updateGridBounds();
        }//计算新的Center
    }

    marker.isInCluster = true;
    this._markers.push(marker);

    var len = this._markers.length;
    if(len < this._minClusterSize ){     
        this._map.addOverlay(marker);
        //this.updateClusterMarker();
        return true;
    } else if (len === this._minClusterSize) {
        for (var i = 0; i < len; i++) {
            var label = this._markers[i].getLabel();
            this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]);
            this._markers[i].setLabel(label);
        }
        
    } 
    this._map.addOverlay(this._clusterMarker);
    this._isReal = true;
    this.updateClusterMarker();
    return true;
};

/**
 * 判断一个标记是否在该聚合中。
 * @param {Marker} marker 要判断的标记。
 * @return {Boolean} true或false。
 */
Cluster.prototype.isMarkerInCluster= function(marker){
    if (this._markers.indexOf) {
        return this._markers.indexOf(marker) != -1;
    } else {
        for (var i = 0, m; m = this._markers[i]; i++) {
            if (m === marker) {
                return true;
            }
        }
    }
    return false;
};

/**
 * 判断一个标记是否在该聚合网格范围中。
 * @param {Marker} marker 要判断的标记。
 * @return {Boolean} true或false。
 */
Cluster.prototype.isMarkerInClusterBounds = function(marker) {
    return this._gridBounds.containsPoint(marker.getPosition());
};

Cluster.prototype.isReal = function(marker) {
    return this._isReal;
};

/**
 * 更新该聚合的网格范围。
 * @return 无返回值。
 */
Cluster.prototype.updateGridBounds = function() {
    var bounds = new BMap.Bounds(this._center, this._center);
    this._gridBounds = getExtendedBounds(this._map, bounds, this._markerClusterer.getGridSize());
};

/**
 * 更新该聚合的显示样式，也即TextIconOverlay。
 * @return 无返回值。
 */
Cluster.prototype.updateClusterMarker = function () {
    if (this._map.getZoom() > this._markerClusterer.getMaxZoom()) {
        this._clusterMarker && this._map.removeOverlay(this._clusterMarker);
        for (var i = 0, marker; marker = this._markers[i]; i++) {
            this._map.addOverlay(marker);
        }
        return;
    }

    if (this._markers.length < this._minClusterSize) {
        this._clusterMarker.hide();
        return;
    }

    this._clusterMarker.setPosition(this._center);
    
    this._clusterMarker.setText(this._markers.length);

    this._clusterMarker.addEventListener && !this._clusterMarker._hasClickEvent && this._clusterMarker.addEventListener("click", function(event){
        this._clusterMarker._hasClickEvent = true;
        this._markers && this._map.setViewport(this.getBounds());
    }.bind(this));
};

/**
 * 删除该聚合。
 * @return 无返回值。
 */
Cluster.prototype.remove = function(){
    for (var i = 0, m; m = this._markers[i]; i++) {
        var label = this._markers[i].getLabel();
        this._markers[i].getMap() && this._map.removeOverlay(this._markers[i]);
        this._markers[i].setLabel(label);
    }//清除散的标记点
    this._map.removeOverlay(this._clusterMarker);
    this._markers.length = 0;
    delete this._markers;
};

/**
 * 获取该聚合所包含的所有标记的最小外接矩形的范围。
 * @return {BMap.Bounds} 计算出的范围。
 */
Cluster.prototype.getBounds = function() {
    var bounds = new BMap.Bounds(this._center,this._center);
    for (var i = 0, marker; marker = this._markers[i]; i++) {
        bounds.extend(marker.getPosition());
    }
    return bounds;
};

/**
 * 获取该聚合的落脚点。
 * @return {BMap.Point} 该聚合的落脚点。
 */
Cluster.prototype.getCenter = function() {
    return this._center;
};

return MarkerClusterer;

})));

/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))

/***/ }),
/* 82 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 83 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div')
},staticRenderFns: []}

/***/ }),
/* 84 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: (_vm.show),
      expression: "show"
    }]
  }, [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 85 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 86 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: (_vm.panel),
      expression: "panel"
    }]
  }, [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 87 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return (_vm.paths.length) ? _c('div', _vm._l((_vm.paths), function(path, index) {
    return _c('bm-polygon', {
      key: index,
      attrs: {
        "path": path,
        "stroke-color": _vm.strokeColor,
        "stroke-weight": _vm.strokeWeight,
        "stroke-opacity": _vm.strokeOpacity,
        "stroke-style": _vm.strokeStyle,
        "fill-opacity": _vm.fillOpacity,
        "fill-color": _vm.fillColor,
        "mass-clear": _vm.massClear,
        "clicking": _vm.clicking
      },
      on: {
        "click": function($event) {
          return _vm.$emit('click', $event)
        },
        "dblclick": function($event) {
          return _vm.$emit('dblclick', $event)
        },
        "mousedown": function($event) {
          return _vm.$emit('mousedown', $event)
        },
        "mouseup": function($event) {
          return _vm.$emit('mouseup', $event)
        },
        "mouseout": function($event) {
          return _vm.$emit('mouseout', $event)
        },
        "mouseover": function($event) {
          return _vm.$emit('mouseover', $event)
        },
        "remove": function($event) {
          return _vm.$emit('remove', $event)
        }
      }
    })
  }), 1) : _vm._e()
},staticRenderFns: []}

/***/ }),
/* 88 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 89 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: (_vm.panel),
      expression: "panel"
    }]
  }, [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 90 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('span', [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 91 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('span', [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 92 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: (_vm.panel),
      expression: "panel"
    }]
  })
},staticRenderFns: []}

/***/ }),
/* 93 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: (_vm.panel),
      expression: "panel"
    }]
  }, [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 94 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', {
    directives: [{
      name: "show",
      rawName: "v-show",
      value: (_vm.panel),
      expression: "panel"
    }]
  }, [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 95 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 96 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('span', [_vm._t("default", function() {
    return [_c('input')]
  })], 2)
},staticRenderFns: []}

/***/ }),
/* 97 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', [_vm._t("default")], 2)
},staticRenderFns: []}

/***/ }),
/* 98 */
/***/ (function(module, exports) {

module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
  return _c('div', [(!_vm.hasBmView) ? _c('div', {
    ref: "view",
    staticStyle: {
      "width": "100%",
      "height": "100%"
    }
  }) : _vm._e(), _vm._v(" "), _vm._t("default")], 2)
},staticRenderFns: []}

/***/ })
/******/ ]);
});